我有通用列表...我試圖將其轉換爲數據表。List to Datatable並添加列
我使用下面的代碼..
private DataTable ToDataTable<T>(List<T> items)
{
var tb = new DataTable(typeof(T).Name);
PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in props)
{
Type t = GetCoreType(prop.PropertyType);
tb.Columns.Add(prop.Name, t);
}
foreach (T item in items)
{
var values = new object[props.Length];
for (int i = 0; i < props.Length; i++)
{
values[i] = props[i].GetValue(item, null);
}
tb.Rows.Add(values);
}
return tb;
}
我需要在數據表中添加另一列說StatusText
。
該數據表中已有一列名爲Status
。
如果此欄爲0,則StatusText
應該是Active
,或者如果它是1,那麼StatusText
將Inactive
像下面表目前我的代碼返回...
Id Name Status
------------------
1 Test 1
2 Test1 0
3 Test2 0
但是,如何能我生成如下表格?
Id Name Status StatusText
------------------------------
1 Test 1 InActive
2 Test1 0 Active
3 Test2 0 Active
肯定不是你傳遞給函數每個類型T將有額外的列?爲什麼不簡單地將屬性添加到需要它的那些類型,並且將會像其他類型一樣被拾取。 – 2012-08-08 11:46:48