web-dev-qa-db-ja.com

KeyValuePairのリストをIDictionary "C#"に変換します

私のシナリオ、

変換方法List<KeyValuePair<string, string>>からIDictionary<string, string>

42
anbuselvan

LINQを使用すると、非常に簡単です。

IDictionary<string, string> dictionary =
    list.ToDictionary(pair => pair.Key, pair => pair.Value);

重複するキーがある場合、これは失敗することに注意してください-それは大丈夫だと思いますか?

78
Jon Skeet

または、この拡張メソッドを使用してコードを簡略化できます。

public static class Extensions
{
    public static IDictionary<TKey, TValue> ToDictionary<TKey, TValue>(
        this IEnumerable<KeyValuePair<TKey, TValue>> list)
    {
            return list.ToDictionary(x => x.Key, x => x.Value);
    } 
}

EnumerableクラスのToDictionary()拡張メソッドを使用します。

1
Andrew Bezzub