C#datable转list
时间: 2024-12-02 11:19:59 浏览: 5
在C#中,`DataTable` 是.NET Framework提供的用于存储表格数据的数据结构,而 `List<T>` 则是一个动态数组,可以存储任意类型的元素。如果你想要将 `DataTable` 转换为 `List<List<dynamic>>` 或者更具体的列表类型,你可以按照以下步骤操作:
```csharp
using System;
using System.Collections.Generic;
using System.Data;
public List<List<dynamic>> DataTableToList(DataTable dataTable)
{
List<List<dynamic>> dataList = new List<List<dynamic>>();
// 获取表头作为列名
var columnNames = dataTable.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToList();
// 遍历每一行并添加到总的列表中
foreach (DataRow row in dataTable.Rows)
{
dynamic rowData = new ExpandoObject(); // 使用ExpandoObject来处理动态数据
foreach (var columnName in columnNames)
{
rowData[columnName] = row[columnName]; // 设置ExpandoObject的属性值
}
dataList.Add(rowData.ToList()); // 将当前行转换为动态列表并添加到总列表中
}
return dataList;
}
```
在这个例子中,我们首先创建一个空的 `List<List<dynamic>>`,然后获取 `DataTable` 的列名,接着遍历每一行并将数据添加到 `ExpandoObject` 上,最后把 `ExpandoObject` 的所有属性作为一个新的列表项添加到返回的总列表中。
阅读全文