17

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

我试过:

Lookup<int, string> loginGroups = mapADToRole.ToLookup(ad => ad.Value, ad => ad.Key);

但这不是很好。

4

1 回答 1

32

你可以使用:

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

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

这很丑陋,但它会工作。你可以替换任何创建字典的代码吗?那可能会更干净。

于 2012-05-02T19:21:51.980 回答