【发布时间】: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>。