我有一些財產的數據列表。我想將該列表數據轉換爲數據表。如何將列表轉換爲datable。如何列表轉換成數據表
回答
只需添加此功能,並調用它,它就會列表轉換爲數據表。
public static DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
//Get all the properties
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
//Defining type of data column gives proper data table
var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
//Setting column names as Property names
dataTable.Columns.Add(prop.Name, type);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
//inserting property values to datatable rows
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
//put a breakpoint here and check datatable
return dataTable;
}
如何調用該function.thanks答覆 – user2660267
假設你有User.List
我們是否需要爲此方法添加任何名稱空間才能工作? PropertyInfo []沒有被識別。 –
你可以使用這個擴展方法,並調用它。
DataTable dt = YourList.ToDataTable();
public static DataTable ToDataTable<T>(this List<T> iList)
{
DataTable dataTable = new DataTable();
PropertyDescriptorCollection propertyDescriptorCollection =
TypeDescriptor.GetProperties(typeof(T));
for (int i = 0; i < propertyDescriptorCollection.Count; i++)
{
PropertyDescriptor propertyDescriptor = propertyDescriptorCollection[i];
Type type = propertyDescriptor.PropertyType;
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
type = Nullable.GetUnderlyingType(type);
dataTable.Columns.Add(propertyDescriptor.Name, type);
}
object[] values = new object[propertyDescriptorCollection.Count];
foreach (T iListItem in iList)
{
for (int i = 0; i < values.Length; i++)
{
values[i] = propertyDescriptorCollection[i].GetValue(iListItem);
}
dataTable.Rows.Add(values);
}
return dataTable;
}
正是我在找的東西! –
這給了我'string'類型'List'的數值。 – Jogi
static DataTable ConvertListToDataTable(List<string[]> list)
{
// New table.
DataTable table = new DataTable();
// Get max columns.
int columns = 0;
foreach (var array in list)
{
if (array.Length > columns)
{
columns = array.Length;
}
}
// Add columns.
for (int i = 0; i < columns; i++)
{
table.Columns.Add();
}
// Add rows.
foreach (var array in list)
{
table.Rows.Add(array);
}
return table;
}
protected void Button1_Click(object sender, EventArgs e)
{
List<string[]> list = new List<string[]>();
list.Add(new string[] { "Column 1", "Column 2", "Column 3" });
list.Add(new string[] { "Row 2", "Row 2" });
list.Add(new string[] { "Row 3" });
// Convert to DataTable.
DataTable table = ConvertListToDataTable(list);
dataGridView1.DataSource = table;
}
試試這個
'ConvertListToDataTable(...);'在dotnet的,除非你訪問這個頁面,你可以爲這個方法找到的代碼是不知道'http://social.msdn.microsoft.com/Forums/vstudio/en-US/6ffcb247 -77fb-40B4-BCBA-08ba377ab9db /轉換-A-列表 - – Bellash
- 1. 如何列表轉換爲數據表
- 2. 整數列表如何轉換成列表的列表?
- 3. 如何將數據框列表轉換爲列表列表?
- 4. 如何轉MySQL錶行轉換成列
- 5. 如何轉換數據表?
- 6. 轉換R數據表列
- 7. 轉換列表數據幀
- 8. 如何JSON數據與錶轉換成使用動態列
- 9. 如何將列表數據轉換成JSON格式
- 10. 如何將數據轉換成列表蟒蛇
- 11. 轉換一個列表轉換成數據幀
- 12. 如何列表轉換成字典
- 13. 如何層次列表轉換成JSON
- 14. 如何將XML轉換成列表
- 15. 如何將2維數組列表轉換爲數據表?
- 16. 轉換的數據表列表,以JSON
- 17. 將數據錶轉換爲列表
- 18. 列表索引轉換爲數據表
- 19. 轉換列表到數據表
- 20. 轉換數據表到泛型列表
- 21. 如何顯示從Excel工作表數據轉換成圖表
- 22. 組列表轉換成由列表
- 23. 如何將Python整數列表轉換爲列表列表?
- 24. 如何使用隱式轉換列表轉換[A]成列表[B]
- 25. 轉換規則轉換成列表
- 26. XSLT轉換HTML列表轉換成XML
- 27. 轉換成向量列表
- 28. 轉換成列表解析
- 29. 如何元組(含4元)的列表轉換成列表
- 30. 如何列表轉換爲Unicode列表
你能不能給我們介紹一下類型列表中的對象的信息? –