我们仍然不确定您要做什么,但是如果您想创建动态对象列表,您可以尝试dynamic
var dynamicList = new List<dynamic>();
然后你将不得不通过ExpandoObject
您必须将其转换IDictionary
为将列名作为属性传递。
然后你可以访问这样的列表项item.YourColumnName
这是一个完整的例子:
var dynamicList = new List<dynamic>();
DataTable dt = new DataTable();
dt.Columns.Add("Col1");
dt.Columns.Add("Col2");
dt.Rows.Add("val1","val2");
dt.Rows.Add("val3", "val4");
foreach (DataRow dr in dt.Rows)
{
dynamic myObj = new ExpandoObject();
var p = myObj as IDictionary<string, object>;
p[dr.Table.Columns[0].ColumnName] = dr[0];
p[dr.Table.Columns[1].ColumnName] = dr[1];
dynamicList.Add(p);
}
foreach (var item in dynamicList)
{
Console.WriteLine(item.Col1 + " " + item.Col2);
}
或 linq 当然也可以打印出值:
dynamicList.ForEach(x => Console.WriteLine(x.Col1 + " " + x.Col2));
该程序将打印出:
val1 val2
val3 val4