2017-06-22 96 views
0

我有一個嵌套並行字典下面給出:如何在C#中得到的值到列表的嵌套並行字典

ConcurrentDictionary<string,ConcurrentDictionary<string,<Class Object>>> 

我想獲得的所有對象(內部字典的值)到列表進行進一步的處理,而不知道任何關鍵。

我嘗試以下兩種解決方案,但它不爲我工作,

  1. dictionary.Values.Select(x=> x.Values)
  2. foreach

用第一溶液的問題是,它不會只給出了對象第二種解決方案耗時。

+2

你[編輯],並能告訴你'foreach'循環,看看它爲什麼是費時? – dasblinkenlight

+0

使用'SelectMany'而不是'Select'。 https://stackoverflow.com/questions/958949/difference-between-select-and-selectmany – apocalypse

回答

1

如果您運行dictionary.Values.Select(x=> x.Values),您將無法從內部字典中獲取對象值列表;您將獲得一個對象值列表的列表。

「平坦」該列表中,使用SelectMany

foreach (var inner in dictionary.Values.SelectMany(x=> x.Values)) { 
    ... 
}