如何转换字典的查询? [重复](How do I convert a Dictionary to

2019-06-24 03:21发布

这个问题已经在这里有一个答案:

  • LINQ转换字典查询 2个回答

我有一个有签名字典: Dictionary<int, List<string>> 。 我想它的签名转换为查询: Lookup<int, string>

我试过了:

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

但是,这是行不通的那么好。

Answer 1:

你可以使用:

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

(你可以使用KeyValuePair ,而不是匿名类型-我大多没有格式化的原因。)

这实在是太丑陋,但它的工作。 您可以更换任何代码创建的字典开始虽然? 这很可能是清洁工。



文章来源: How do I convert a Dictionary to a Lookup? [duplicate]