c# - 无法从List <DateTime?>转换为List <dynamic>

A. *_*vva 4 c# datetime list

我试图在列表中创建一个属性不同的属性.这是我的班级:

public class ChartData
{
    public string id { get; set; }
    public List<dynamic> data { get; set; }

    public ChartData()
    {
    }

    public ChartData(string id, List<DateTime?> data)
    {
        this.id = id;
        this.data = data;
    }
}

    public ChartData(string id, List<float?> data)
    {
        this.id = id;
        this.data = data;
    }

    public ChartData(string id, List<int?> data)
    {
        this.id = id;
        this.data = data;
    }
Run Code Online (Sandbox Code Playgroud)

在代码中,我使用data列表来存储DateTime?,float?int?数据.我该怎么做才能将这些不同的类型存储在一个类属性中?

我收到错误:

Argument 2: cannot convert from 'System.Collections.Generic.List<System.DateTime?>' to 'System.Collections.Generic.List<dynamic>'
Run Code Online (Sandbox Code Playgroud)

Oda*_*wan 8

如果您在实例化之前知道类型,我建议使用泛型

public class ChartData
{
   public string id { get; set; }
}

public class ChartData<T> : ChartData
{
    public List<T> data { get; set; }

    public ChartData()
    {
    }

    public ChartData(string id, List<T> data)
    {
        this.id = id;
        this.data = data;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

ChartData<int> intData = new ChartData<int>("ID1", new List<int>());
ChartData<DateTime> dateData = new ChartData<DateTime>("ID1", new List<DateTime>());
ChartData<float> floatData = new ChartData<float>("ID1", new List<float>());



List<ChartData> list = new List<ChartData>() {
    intData,
    dateData,
    floatData
};
Run Code Online (Sandbox Code Playgroud)