我有充满数据的 DataTable,有 3 列 - col1
、col2
和col3
。
当 in 的值大于 1000 或小于 -1000时,我必须更新col3
(将其设置为null
)中的数据。col3
我试图迭代每一行并检查这个条件,但它太慢了。如何提高速度?
我有充满数据的 DataTable,有 3 列 - col1
、col2
和col3
。
当 in 的值大于 1000 或小于 -1000时,我必须更新col3
(将其设置为null
)中的数据。col3
我试图迭代每一行并检查这个条件,但它太慢了。如何提高速度?
假设列的类型是int
,您可以使用Linq
:
var rowsToUpdate = data.AsEnumerable()
.Where(r => r.Field<int?>("col3") > 1000 || r.Field<int?>("col3") < -1000);
foreach( DataRow row in rowsToUpdate )
row.SetField<int?>("col3", null);
字段方法支持可为空的类型,并且该SetField
方法允许使用null
.
一点点微优化,只是因为你提到它太慢了:
var rowsToUpdate = data.AsEnumerable()
.Where(r => {
var val = r.Field<int?>("col3") ?? 0;
return val > 1000 || val < -1000;
});