我想将列表转换为数据表格。我使用以下代码:
public static DataTable ConvertToDataTable(object o)
{
DataTable dt = new DataTable("OutputData");
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
o.GetType().GetProperties().ToList().ForEach(f =>
{
try
{
f.GetValue(o, null);
dt.Columns.Add(f.Name, f.PropertyType);
dt.Rows[0][f.Name] = f.GetValue(o, null);
}
catch { }
});
return dt;
}
以下是我尝试传递给ConverToDataTable方法的类对象:
public class Class1
{
private List<int> _intList;
public List<int> intList
{
get
{
return _intList;
}
set
{
_intList = value;
}
}
}
但是当我尝试将class1对象转换为DataTable时,我将数据表列作为count和Capacity ..我做错了什么?
答案 0 :(得分:1)
如果要将整数列表转换为Datatable,则不需要使用Reflection。这可以解决。
public DataTable ConvertToDataTable(List<int> o)
{
DataTable dt = new DataTable("OutputData");
dt.Columns.Add("Integers", Type.GetType("System.Int32"));
foreach (var item in o)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
dt.Rows[dt.Rows.Count - 1][0] = item;
}
return dt;
}
但是如果要将对象列表转换为数据表,则必须使用反射。
答案 1 :(得分:0)
当然是因为您要在列表see this
中添加列表值而不是整数值