簡體   English   中英

轉換字典的簡單和最好的方法 <key, List<obj> &gt;列表 <obj> 在C#中

[英]Simple and Best way to convert Dictionary<key, List<obj>> to List<obj> in C#

假設我們有這樣的字典

Dictionary<key, List<obj>>

我希望將所有值都列為這樣的列表

List<obj>

例如,字典中有3個鍵,key1,key2,key3。

2 values for key1
3 values for key2
5 values for key3

結果應該是一個有10個值的列表!

我認為可以使用foreach和ToList()來完成。 我希望更簡單,更有效的解決方案。

您可以使用Values屬性從字典中獲取所有值。 SelectMany linq擴展將列表序列展平為對象序列:

dictionary.Values.SelectMany(v => v).ToList()

使用LINQ SelectMany方法:

var list = dictionary.SelectMany(item => item.Value).ToList();

來自文檔:

將序列的每個元素投影到IEnumerable,並將生成的序列展平為一個序列。

您所要做的就是指定選擇器 - 您要為每個KeyValuePair選擇的IEnumerable,這顯然是值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM