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

c# – 如何将IDictionary的值复制到.Net 2.0中的IList对象中?

发布时间:2020-12-15 19:30:24 所属栏目:百科 来源:网络整理
导读:如果我有: Dictionarystring,int 如何将所有值复制到: Listint 宾语? 解决方案需要与2.0 CLR版本和C#2.0兼容 – 除了循环遍历字典并将值逐个添加到List对象之外,我真的没有更好的想法.但这感觉非常低效. 有没有更好的办法? 解决方法 值得注意的是,您应该
如果我有:

Dictionary<string,int>

如何将所有值复制到:

List<int>

宾语?

解决方案需要与2.0 CLR版本和C#2.0兼容 – 除了循环遍历字典并将值逐个添加到List对象之外,我真的没有更好的想法.但这感觉非常低效.

有没有更好的办法?

解决方法

值得注意的是,您应该退后一步,问自己是否确实需要存储在具有随机索引访问权限的列表中的项目,或者您是否需要不时枚举每个键或值.

您可以轻松地迭代MyDictionary.Values的ICollection.

foreach (int item in dict.Values) { dosomething(item); }

否则,如果您确实需要将其存储为IList,那么复制所有项目并不是特别低效;这只是一个O(n)操作.如果您不需要经常这样做,为什么要担心?如果您为编写代码而烦恼,请使用:

IList<int> x=new List<int>(dict.Values);

它将您编写的代码包装到已经实现了您计划编写的代码的复制构造函数中.这是代码效率的线,这可能是你真正关心的;它没有比你写的更有空间或时间效率.

(编辑:李大同)

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

    推荐文章
      热点阅读