如何将字典转换为查找?

dot*_*00b 12 .net c# lookup dictionary list

我有一个有签名的词典:Dictionary<int, List<string>>.我想将它转换为带签名的Lookup : Lookup<int, string>.

我试过了:

Lookup<int, string> loginGroups = mapADToRole.ToLookup(ad => ad.Value, ad => ad.Key);
Run Code Online (Sandbox Code Playgroud)

但这并不是那么好用.

Jon*_*eet 20

你可以使用:

var lookup = dictionary.SelectMany(p => p.Value
                                         .Select(x => new { p.Key, Value = x}))
                       .ToLookup(pair => pair.Key, pair => pair.Value);
Run Code Online (Sandbox Code Playgroud)

(您可以使用KeyValuePair而不是匿名类型 - 我主要不是出于格式化原因.)

这很难看,但它会起作用.你可以替换创建字典的任何代码吗?那可能会更清洁.

  • @SaeedAmiri:不,我的意思是我写的。它应该可以正常工作 - 推断出“Key”属性名称。 (2认同)