Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字典值到IEnumerable的Concat列表_C#_.net_Linq_Dictionary - Fatal编程技术网

C# 从字典值到IEnumerable的Concat列表

C# 从字典值到IEnumerable的Concat列表,c#,.net,linq,dictionary,C#,.net,Linq,Dictionary,我有一个字典,希望得到一个IEnumerable,它允许我迭代dict中所有列表的所有元素。这当然应该避免处理所有元素和其他性能代价高昂的操作 我对Linq的做法不太正确: IEnumerable<T> enumerable = dict.SelectMany(list).Foreach(list.ConcatAll()).ToEnum(); IEnumerable enumerable=dict.SelectMany(list.Foreach(list.ConcatAll()).

我有一个
字典
,希望得到一个
IEnumerable
,它允许我迭代dict中所有列表的所有元素。这当然应该避免处理所有元素和其他性能代价高昂的操作

我对Linq的做法不太正确:

IEnumerable<T> enumerable = dict.SelectMany(list).Foreach(list.ConcatAll()).ToEnum();
IEnumerable enumerable=dict.SelectMany(list.Foreach(list.ConcatAll()).ToEnum();

如果
Linq
不是最佳方式,请建议其他选项。

尝试使用以下代码

var enumerable=dict.Values.SelectMany(v=>v);
您正在访问字典集合,然后使用方法将每个值投影为
List
,并展平到结果枚举


您的代码不起作用,因为
SelectMany()
接受
Func
作为集合选择器,也不需要使用
Foreach
方法
ToEnum()
方法用法在这里也是无效的,它属于
Enum
类型和几乎所有
系统。Linq
方法已经接受或返回
IEnumerable

请告诉我+1以便更好地解释当我迭代这个结果枚举时,它会迭代列表还是列表的元素?@Mechandrius它应该迭代elements@Mechandrius它将迭代列表中的元素<代码>选择多个将每个列表中的元素投影到一个结果枚举OK,这是正确答案。请原谅我问了这么简单的问题。