18 linq lookup dictionary
我有一个类型的变量Dictionary<MyType, List<MyOtherType>>
我想将它转换为Lookup<MyType, MyOtehrType>
.
我想首先使用Lambda函数,展平字典,然后使用ToLookup()
.将其转换为Lookup .我被困在字典里.我想过使用SelectMany却无法使用它.任何人都知道该怎么做?
3dG*_*ber 19
与Jon的方法相同,但避免创建匿名类型:
var lookup = dictionary
.SelectMany(p => p.Value, Tuple.Create)
.ToLookup(p => p.Item1.Key, p => p.Item2);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 16
怎么样:
var lookup = dictionary.SelectMany(pair => pair.Value,
(pair, Value) => new { pair.Key, Value })
.ToLookup(pair => pair.Key, pair => pair.Value);
Run Code Online (Sandbox Code Playgroud)
当字典已经适当地分组了所有信息时,它确实感觉有点浪费,但我看不到一个简单的方法.当然,您可以ILookup<TKey, TValue>
使用字典周围的包装器来实现自己...