Aar*_*mas 1 .net c# linq dictionary
Dictionary在 .NET 框架中是否有一种使用 Linq将一个映射到另一个的优雅方法?
这可以通过枚举来完成foreach:
var d1 = new Dictionary<string, string>() {
{ "One", "1" },
{ "Two", "2" }
};
// map dictionary 1 to dictionary 2 without LINQ
var d2 = new Dictionary<string, int>();
foreach(var kvp in d1) {
d2.Add(kvp.Value, int.Parse(kvp.Value));
}
Run Code Online (Sandbox Code Playgroud)
...但我正在寻找某种方式来完成 LINQ:
// DOES NOT WORK
Dictionary<string, int> d2 =
d1.Select(kvp => {
return new KeyValuePair<string, int>(kvp.Key, int.Parse(kvp.Value));
})
Run Code Online (Sandbox Code Playgroud)
只需使用命名空间中的ToDictionary扩展方法System.Linq
var d2 = d1.ToDictionary(kvp => kvp.Key, kvp => int.Parse(kvp.Value));
Run Code Online (Sandbox Code Playgroud)
由于Dictionary<TKey, TValue>类实现IEnumerable<KeyValuePair<TKey,TValue>>并且ToDictionary是IEnumerable<T>上述代码的扩展方法工作正常
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |