2017-06-22 95 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)) { 
    ... 
}