Преобразовать список KeyValuePair в IDictionary "С#"

Мой сценарий,

как преобразовать List<KeyValuePair<string, string>> в IDictionary<string, string>?

Ответ 1

Очень, очень просто с LINQ:

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

Обратите внимание, что это не сработает, если есть дубликаты ключей - я предполагаю, что все в порядке?

Ответ 2

Или вы можете использовать этот метод расширения для упрощения кода:

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);
    } 
}

Ответ 3

Используйте метод расширения ToDictionary() класса Enumerable.