我有一个有签名的词典:Dictionary<int, List<string>>
。我想将其转换为带签名的Lookup:Lookup<int, string>
。
我试过了:
Lookup<int, string> loginGroups = mapADToRole.ToLookup(ad => ad.Value, ad => ad.Key);
但是效果并不好。
答案 0 :(得分:20)
您可以使用:
var lookup = dictionary.SelectMany(p => p.Value
.Select(x => new { p.Key, Value = x}))
.ToLookup(pair => pair.Key, pair => pair.Value);
(您可以使用KeyValuePair
而不是匿名类型 - 我主要不是出于格式化原因。)
这很难看,但它会起作用。你可以替换创建字典的任何代码吗?那可能会更清洁。