您好!您的问题是关于将 DataTable 转换为 List<T> 的问题。
在 C# 中,可以使用 LINQ 技术将 DataTable 转换为 List<T>。以下是一个示例代码:
using System.Data;
using System.Linq;
public static List<T> DataTableToList<T>(DataTable table)
{
List<T> list = new List<T>();
foreach (DataRow row in table.Rows)
{
T item = GetItem<T>(row);
list.Add(item);
}
return list;
}
private static T GetItem<T>(DataRow row)
{
Type type = typeof(T);
T item = Activator.CreateInstance<T>();
foreach (DataColumn column in row.Table.Columns)
{
PropertyInfo property = type.GetProperty(column.ColumnName);
if (property != null && row[column] != DBNull.Value)
{
property.SetValue(item, row[column], null);
}
}
return item;
}
在这个示例中,我们定义了一个泛型方法 DataTableToList<T>,它接受一个 DataTable 参数,并返回一个 List<T> 类型的结果。在方法中,我们遍历 DataTable 中的每一行,并使用 GetItem<T> 方法将每一行转换为对应的 T 类型的对象,并将其添加到 List<T> 中。最后,我们返回 List<T> 作为结果。
GetItem<T> 方法用于将 DataRow 转换为对应的 T 类型的对象。在方法中,我们首先获取 T 类型的 PropertyInfo 对象,然后将 DataRow 中的每一列的值设置到对应的属性中。最后,我们返回 T 类型的对象。
需要注意的是,在使用这个方法时,需要确保 DataTable 中的列名和 T 类型的属性名称相同,否则无法正确转换。
希望这个答案能够帮助您解决问题!
领取专属 10元无门槛券
手把手带您无忧上云