我有一个定义为 <int, IEnumerable<char>>
的字典.假设数据填充如下:
1, a b c d e
2, f g h i j
3, k l m n o
如果我有一个由 1 和 3 组成的 IEnumerable,LINQ 会返回什么 'a b c d e k l m n o'
(假设空格代表一次迭代)。
最佳答案
SelectMany 确实是你想要的,但恕我直言,使用理解语法并让它为你做映射更具可读性,所以像这样:
var dict = ... // dictionary
var keys = ... // enumerable with 1 and 3 in it
var result = from key in keys
from val in dict[key]
select val;
如果/根据需要,也更容易(同样,恕我直言)在其中添加“orderby”。
当然,如果您发现扩展方法版本更易于阅读/解析,那么一定要改用它。 :)
关于c# - LINQ 将多个 IEnumerables 聚合为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7535863/