我的情景,
如何转换List<KeyValuePair<string, string>>
成 IDictionary<string, string>
?
使用 LINQ 非常非常简单:
IDictionary<string, string> dictionary =
list.ToDictionary(pair => pair.Key, pair => pair.Value);
请注意,如果有任何重复的键,这将失败 - 我认为这可以吗?
或者你可以使用这个扩展方法来简化你的代码:
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);
}
}
使用类ToDictionary()
的扩展方法Enumerable
。
您还可以使用带有as 参数的构造函数重载。Dictionary<TKey,TValue>
IEnumerable<KeyValuePair<TKey,TValue>>
var list = new List<KeyValuePair<int, string>>();
var dictionary = new Dictionary<int, string>(list);