我想有一个方法将一个给定类型的列表转换为该类型的字典,但我希望该类型是一个从我的XMLData类继承的类,这样我就可以使用Name属性作为字典的键。下面是代码。
public static class SomeTools
{
public static Dictionary<string, XMLData> ConvertToDictionary(List<XMLData> xmlDataList)
{
Dictionary<string, XMLData> dict = new Dictionary<string, XMLData>();
foreach(XMLData data in xmlDataList)
{
dict.Add(data.Name, data);
}
return dict;
}
}
这对获取XMLData的字典很有效 但我不能用它来获取LocationData的字典。下面是被执行的代码,试图检索位置数据。
List<LocationData> datalist = new List<LocationData>();
Dictionary<string, LocationData> locationData = SomeTools.ConvertToDictionary(datalist);
好吧,在用不同的方法试错之后,我找到了一个可行的方法。
这是我的新代码。
public static Dictionary<string, XMLData> ConvertToDictionary<XMLData>(List<XMLData> xmlDataList)
{
Dictionary<string, XMLData> dict = new Dictionary<string, XMLData>();
foreach(XMLData data in xmlDataList)
{
dynamic d = data;
dict.Add(d.Name, data);
}
return dict;
}
我不知道我对动态的感觉如何,但它让事情成功了。