加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:19:16 所属栏目:百科 来源:网络整理
导读:问题似乎很简单.虽然 documentation说它确实: public sealed class KeyCollection : ICollectionTKey,IReadOnlyCollectionTKey,IEnumerableTKey,ICollection,IEnumerable 以下代码给出了错误: class MyKeysT{ readonly DictionaryT,T dict = new Dictionar
问题似乎很简单.虽然 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文件)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读