我需要有效的扩展方法来获得DataRow作为列表
本文关键字:DataRow 列表 double 有效 扩展 方法 | 更新日期: 2023-09-27 18:11:53
我需要扩展DataRow的方法,返回双精度值列表。
我假设我的DataRow只包含双数据类型。
我试过这样做:
public static List<double> ToListOfDouble(this DataRow datarow)
{
List<double> retList = new List<double>();
foreach (object val in datarow) // error here
{
retList.Add((double)val);
}
return retList;
}
but I have error:
foreach语句不能对类型的变量进行操作"System.Data。DataRow'因为'System.Data。DataRow'不包含GetEnumerator的公共定义
一个简单的选项:
return datarow.ItemArray.Cast<double>().ToList();
这可能涉及到不必要的拷贝。在数据复制方面更有效,但在验证等方面可能效率较低:
int count = row.Table.Columns.Count;
var ret = new List<double>(count);
for (int i = 0; i < count; i++)
{
ret.Add((double) datarow[i]);
}
return ret;
如果你认为这对你的应用很重要,你应该对这两个选项进行基准测试,以检查它们的性能。
DataRow。ItemArray是你想要迭代的属性(而不是datarow
本身)。