如何转换 Dictionary(Of TypeA, TypeB)
到 Dictionary(Of TypeC, TypeD)
?转换时有一个隐式转换(假设第二个字典是 String, String
),所以这个过程应该是自动的,对吧?我只是想不出一种优雅的方式来做到这一点。
语言是 VB.NET,但如果你更习惯的话,我可以阅读和转换 C#。
最佳答案
我会在这样的情况下使用 Linq。有一个ToDictionary()
该方法通过对 Enumerable 元素进行两次投影以生成字典的键和值,将任何通用 IEnumerable (和 Dictionary<TA,TB>
是 IEnumerable<KeyValuePair<TA,TB>>
)转换为字典。它使这些类型的转换非常简单:
Dictionary<TypeA, TypeB> myDictionary = new Dictionary<TypeA, TypeB>
{
/*initialization here*/
};
Dictionary<TypeC, TypeD> myChangedDictionary =
myDictionary.ToDictionary(x=>x.Key.AsTypeC(), x=>x.Value.AsTypeD())
AsTypeC() 和 AsTypeD() 是从 A/B 到 C/D 所需的任何转换的占位符。您建议第二个字典是
Dictionary<string,string>
;在这种情况下,您只需使用 ToString() (如果您已覆盖该方法)或在某些 String.Format 操作中使用键/值。
关于.net - 将字典从一种类型转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507804/