17

署名を持つ辞書があります: Dictionary<int, List<string>>. 署名付きの Lookup に変換したい: 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 に答える