如果我有一个:
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);
它将您要编写的代码包装到一个复制构造函数中,该构造函数已经实现了您计划编写的代码。这是高效的代码行,这可能是您真正关心的;它的空间或时间效率并不比您编写的内容高。
关于c# - 如何将字典的值复制到 .Net 2.0 中的 IList 对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770765/