我曾经遇到过几次这样的情况:我有一个IEnumerable<T>和一个将T实例映射到IEnumerable<U>的函数map。我想生成一个由该映射定义的ILookup<T, U>。
这似乎是一个非常常见的用例,但我还没有找到一种简洁的方法来生成查找。具体地说,enumT.ToLookup( t=>t, t=>map(t))生成一个ILookup<T, IEnumerable<U>>。
发布于 2016-09-03 02:14:42
在调用ToLookup之前,只需使用SelectMany将序列展平即可。
var lookup = sequence.SelectMany(key => Foo(key), (key, value) => new { key, value, })
.ToLookup(pair => pair.key, pair => pair.value);https://stackoverflow.com/questions/39298400
复制相似问题