假设我们有一个像这样的词典
Dictionary<key, List<obj>>
我希望将所有值都列为此列表
List<obj>
e.g。字典中有3个键,key1,key2,key3。
2 values for key1
3 values for key2
5 values for key3
结果应该是一个包含10个值的列表!
我认为可以使用foreach和ToList()来完成。 我希望更简单,更有效的解决方案。
答案 0 :(得分:3)
您可以使用Values
属性从字典中获取所有值。并SelectMany
linq扩展将列表序列展平为对象序列:
dictionary.Values.SelectMany(v => v).ToList()
答案 1 :(得分:2)
使用LINQ SelectMany方法:
var list = dictionary.SelectMany(item => item.Value).ToList();
来自文档:
将序列的每个元素投影到IEnumerable并展平 得到的序列成一个序列。
您所要做的就是指定选择器 - 您要为每个KeyValuePair选择的IEnumerable,这显然是值。