将列表从字典值转换为IEnumerable



我有一个Dictionary<int, list<T>>,想要得到一个IEnumerable<T>,它允许我迭代dict中所有列表的所有元素。这当然应该避免处理所有元素和其他性能昂贵的操作。

我对林克的方法,这不是很正确:

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

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

尝试使用以下代码

var enumerable = dict.Values.SelectMany(v => v);

您正在访问dictionary的Values集合,然后使用SelectMany方法将每个值投影为List<T>,并展平为生成的枚举

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

最新更新