使用继承类列表作为参数,并返回它们的字典。

问题描述 投票:0回答:1

我想有一个方法将一个给定类型的列表转换为该类型的字典,但我希望该类型是一个从我的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);
c# class unity3d
1个回答
0
投票

好吧,在用不同的方法试错之后,我找到了一个可行的方法。

这是我的新代码。

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

我不知道我对动态的感觉如何,但它让事情成功了。

© www.soinside.com 2019 - 2024. All rights reserved.