【问题标题】:how to get dataTable from arraylist in which dataTable is stored?如何从存储dataTable的arraylist中获取dataTable?
【发布时间】:2017-02-07 10:41:13
【问题描述】:

我有一个 ArrayList ,它在第 0 个位置有一个 string ,在第一个位置有一个 DataTable 有可能找回DataTable吗?

ArrayList dataModel = new ArrayList();
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Rows.Add("1","Rahul","Vapi");
dt.Rows.Add("2", "Yash", "Vapi");
dt.Rows.Add("3", "Dinesh", "vapi");

dataModel.Add("this is working for me");
dataModel.Add(dt);

我收到此错误:

无法将类型“object”隐式转换为“System.Data.DataTable”。存在显式转换(您是否缺少演员表?)

【问题讨论】:

  • 大错特错...使用List<Dictionary<string,DataTable>>怎么样?
  • @Pikoh:当然,您不需要再使用ArrayList。但是你的例子没有帮助。 OP 只有两个项目,一个字符串和一个DataTable。因此,如果您想用通用集合替换它,您需要使用 List<Object> 在这种情况下,您还需要转换项目。
  • @pikoh:因为这就是 OP 使用数组列表的方式。他不需要存储多个字符串数据表组合的方法,您可以使用List<Dictionary<string,DataTable>> 处理这些组合。只有一个字符串和一个DataTable。当然他应该使用两个单独的变量(局部变量、属性或字段),或者一个封装两者的类。
  • 请试试这个 Datatable to Arraylist stackoverflow.com/a/3573771/1849024
  • @pikoh:如果您想支持多个,最好提供一个具有两个属性的自定义类,然后使用List<MyCustomClass>

标签: c# arrays datatable


【解决方案1】:

(你错过了演员表吗?)

是的。

DataTable dt = (DataTable) dataModel[1];

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2015-06-14
    • 1970-01-01
    • 2023-03-11
    • 2019-01-07
    • 1970-01-01
    • 2011-11-20
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多