如何将 DataTable 转换为通用列表?

如何将 DataTable 转换为通用列表?

问题描述:

目前,我正在使用:

DataTable dt = CreateDataTableInSomeWay();

List<DataRow> list = new List<DataRow>(); 
foreach (DataRow dr in dt.Rows)
{
    list.Add(dr);
}

有更好/更神奇的方法吗?

Is there a better/magic way?

如果您使用的是 .NET 3.5,则可以使用 DataTableExtensions.AsEnumerable(一个扩展方法)然后如果你真的需要一个List 而不仅仅是 IEnumerable 你可以调用 Enumerable.ToList:

If you're using .NET 3.5, you can use DataTableExtensions.AsEnumerable (an extension method) and then if you really need a List<DataRow> instead of just IEnumerable<DataRow> you can call Enumerable.ToList:

IEnumerable<DataRow> sequence = dt.AsEnumerable();

using System.Linq;
...
List<DataRow> list = dt.AsEnumerable().ToList();