Tôi có danh sách dữ liệu với một số thuộc tính. Tôi muốn chuyển đổi dữ liệu danh sách đó thành bảng dữ liệu. Làm thế nào để chuyển đổi một danh sách thành datable.Cách chuyển danh sách thành bảng dữ liệu
Trả lời
Chỉ cần thêm chức năng này và gọi nó, nó sẽ chuyển đổi Danh sách để DataTable.
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;
}
cách gọi hàm này.thanks for reply – user2660267
Giả sử bạn có danh sách User.List
Chúng ta có cần thêm bất kỳ không gian tên nào để phương thức này hoạt động không? PropertyInfo [] không nhận được. –
bạn có thể sử dụng phương thức này và gọi nó như thế này.
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;
}
Chính xác những gì tôi đang tìm kiếm! –
Điều này cho tôi các giá trị số cho một loại 'Danh sách' của' chuỗi'. – 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;
}
Hãy thử điều này
'ConvertListToDataTable (...);' không được biết đến trong dotnet trừ khi bạn truy cập trang này, nơi bạn có thể tìm mã cho phương thức này 'http://social.msdn.microsoft.com/Forums/vstudio/en-US/6ffcb247 -77fb-40b4-bcba-08ba377ab9db/conversion-a-list- – Bellash
- 1. Chuyển danh sách danh sách phức tạp thành danh sách khung dữ liệu
- 2. Chuyển danh sách chung thành tập dữ liệu trong C#
- 3. chuyển danh sách các bộ dữ liệu thành nhiều danh sách trong Python
- 4. Haskell: Chuyển đổi danh sách dữ liệu
- 5. Chuyển đổi mảng 2dump thành danh sách các danh sách
- 6. Làm cách nào để chuyển đổi Danh sách <T> thành Tập dữ liệu?
- 7. Chuyển đổi CollectionBase thành Danh sách hoặc kiểu dữ liệu có thể sử dụng với LINQ
- 8. Cách dễ dàng để chuyển đổi bảng dữ liệu thành bảng băm hoặc sqldatareader thành hashtable
- 9. Python - chuyển đổi danh sách các bộ dữ liệu thành chuỗi
- 10. Python, Sqlite3 - Cách chuyển đổi danh sách thành ô BLOB
- 11. chuyển đổi danh sách chuỗi thành danh sách số nguyên
- 12. R: chuyển đổi khung dữ liệu thành bảng
- 13. Tách danh sách thành một danh sách các bộ dữ liệu có thể
- 14. Chuyển đổi danh sách các chuỗi dữ liệu thành datetime rất chậm với Python strptime
- 15. Di chuyển một dữ liệu danh sách mảng sang một danh sách mảng khác trong C#
- 16. chuyển đổi danh sách phẳng thành danh sách trong python
- 17. chuyển đổi Danh sách chung .NET thành F # danh sách
- 18. Chuyển danh sách chuỗi thành danh sách int
- 19. Cách Pythonic để chuyển đổi danh sách các dicts thành danh sách têntuples
- 20. Chuyển đổi danh sách các danh sách thành chuỗi phân cách
- 21. Scala - chuyển đổi Danh sách Danh sách thành một Danh sách duy nhất: Danh sách [Danh sách [A]] thành Danh sách [A]
- 22. Làm cách nào để hợp nhất các danh sách vào danh sách các bộ dữ liệu?
- 23. Chuyển đổi Data.Sequence thành một danh sách?
- 24. Chuyển đổi danh sách thành mảng. java.lang.ArrayStoreException
- 25. Làm cách nào để chuyển đổi từ điển Python sang danh sách các bộ dữ liệu?
- 26. Làm cách nào để hiển thị danh sách các bảng trong cơ sở dữ liệu khác?
- 27. Cách lấy danh sách bảng trong cơ sở dữ liệu, sử dụng MS SQL 2008?
- 28. Cách lấy danh sách tất cả các bảng trong hai cơ sở dữ liệu khác nhau
- 29. Chuyển đổi danh sách các danh sách thành danh sách các số nguyên
- 30. Cách lấy dữ liệu danh sách Amazon Amazon Danh sách đọc
Ông có thể cung cấp cho chúng tôi thông tin về loại của các đối tượng trong danh sách? –