2011-10-30 54 views
2

這似乎是完全直截了當的,但今天早上我的大腦工作不太好,我似乎無法找到一個好的搜索表達式的答案。從嵌套集合中收集一個不同的鍵值列表?

我有一個IList<IDictionary<string, string>>,我想要得到一個IList<string>,其中包含我的字典對象集合中唯一鍵名的唯一列表。什麼是快速和優雅的方式來做到這一點?我相信答案很簡單,我想不起來。

回答

3
var allKeys = from dict in list 
       from key in dict.Keys 
       select key; 

var distinctKeys = allKeys.Distinct().ToList(); 

或者如果你喜歡lambda語法:

var distinctKeys = list.SelectMany(dict => dict.Keys).Distinct().ToList(); 
+0

哈我知道這是會是我的一個 「咄」 的時刻。謝謝! –

2
list.SelectMany(d => d.Keys).Distinct() 
+0

是的,謝謝! –