c# – `Dictionary.KeyCollection`是否实现了`IReadOnlyCollection`?

前端之家收集整理的这篇文章主要介绍了c# – `Dictionary.KeyCollection`是否实现了`IReadOnlyCollection`?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题似乎很简单.虽然 documentation说它确实:
public sealed class KeyCollection : ICollection<TKey>,IReadOnlyCollection<TKey>,IEnumerable<TKey>,ICollection,IEnumerable

以下代码给出了错误

class MyKeys<T>
{
    readonly Dictionary<T,T> dict = new Dictionary<T,T> ();
    public IReadOnlyCollection<T> Keys { get { return dict.Keys; } set; }
}

说没有来自KeyCollection< T>的转换到IReadOnlyCollection< T>.

此外,polish documentation(法国也就此而言)说它没有:

[SerializableAttribute]
public sealed class KeyCollection : ICollection<TKey>,IEnumerable

这是什么?

如果是英文文档中的错误,还有一个奖励问题:

有没有办法让Keys成为只读集合?

解决方法

Dictionary.KeyCollection当前没有实现IReadOnlyCollection.

但是,该接口已添加到.Net的下一个版本(v4.6).您可以看到使用VS 2015预览.

您还可以在this announcement中看到(下载包含v4.6所有更改的excel文件)

猜你在找的C#相关文章