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

标签 c# list datetime

我正在尝试在采用不同类型的列表中创建一个属性。这是我的课:

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

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

我收到错误:

Argument 2: cannot convert from 'System.Collections.Generic.List<System.DateTime?>' to 'System.Collections.Generic.List<dynamic>'

最佳答案

如果你在实例化之前知道类型,我会推荐使用泛型

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

用法:

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

关于c# - 无法从 List<DateTime?> 转换为 List<dynamic>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776103/

相关文章:

c# - 如何以编程方式备份​​ SQL Server 数据库(mdf)以便以后按行导入?

c# - Caliburn.Micro 将 VM 设置为继承屏幕时,会覆盖 View 中的标题字段

c# - 静态属性/函数的性能

html - Flexbox 容器中列表项之前的额外空间

python - 如何最好的方式将一个列表转换为具有列表中的元素对的新列表?

c# - 计算一周内工作的天数而不循环?

java - 数据源模式 - 在哪里放置表级方法?

list - 过滤列表列表中的元组 [Haskell]

javascript - 在javascript中解析MySQL TIME

c# - 定时器内的日期比较