将带有新对象的数据行转换为列表

问题描述 投票:0回答:1

我有一个现有项目,它使用 DataTable 来迭代数据并添加到列表中,如下所示:

 foreach (DataRow row in data.Rows)
 {
     AllDetails.Add(new CustomDetail(row));
 }

迭代 1000 行时需要花费大量时间(大约 40 秒以上)。我尝试用以下内容替换它:

 IEnumerable<CustomtDetail> rows = data.Rows.OfType<CustomDetail>();
 AllDetails = rows.ToList();

不幸的是,当我看到列表时,计数为 0。但是在 DataTable 中,它有行。有什么我错过的吗?

c# .net .net-4.8 .net-framework-version
1个回答
0
投票

这可能是最简单的方法:

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

© www.soinside.com 2019 - 2024. All rights reserved.