我试图在列表中创建一个属性不同的属性.这是我的班级:
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)
如果您在实例化之前知道类型,我建议使用泛型
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)