c#怎么把datatable转为list
时间: 2023-04-22 15:00:42 浏览: 79
可以使用LINQ语句将DataTable转换为List。
以下是示例代码:
```
DataTable dt = new DataTable();
// 填充DataTable
List<DataRow> drList = dt.AsEnumerable().ToList();
List<YourClass> yourList = drList.Select(x => new YourClass
{
Property1 = x.Field<string>("ColumnName1"),
Property2 = x.Field<int>("ColumnName2"),
// 其他属性
}).ToList();
```
其中,YourClass是你自己定义的类,用于存储DataTable中的数据。在Select方法中,使用x.Field<T>方法获取每一列的值,并将其赋值给YourClass的属性。最后使用ToList方法将结果转换为List。
相关问题
c# datatable 写入 list
可以使用以下代码将 DataTable 转换为 List:
```csharp
public static List<T> ConvertDataTableToList<T>(DataTable dt)
{
List<T> data = new List<T>();
foreach (DataRow row in dt.Rows)
{
T item = GetItem<T>(row);
data.Add(item);
}
return data;
}
private static T GetItem<T>(DataRow dr)
{
Type temp = typeof(T);
T obj = Activator.CreateInstance<T>();
foreach (DataColumn column in dr.Table.Columns)
{
foreach (PropertyInfo pro in temp.GetProperties())
{
if (pro.Name == column.ColumnName)
pro.SetValue(obj, dr[column.ColumnName], null);
else
continue;
}
}
return obj;
}
```
调用方法:
```csharp
List<MyClass> list = ConvertDataTableToList<MyClass>(dataTable);
```
其中,MyClass 是你自己定义的类,包含与 DataTable 中列名相同的属性。
c#将datatable转换为list
可以通过以下代码将 DataTable 转换为 List:
```csharp
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
List<Person> people = new List<Person>();
foreach (DataRow row in dataTable.Rows)
{
Person person = new Person();
person.Id = (int)row["Id"];
person.Name = row["Name"].ToString();
person.Age = (int)row["Age"];
people.Add(person);
}
```
其中,`Person` 是要转换的实体类,`dataTable` 是要转换的 DataTable。遍历 DataTable 的每一行,将每一行的数据赋值给 Person 对象,然后添加到 List 中。