快速将double []值复制到数据表的整个列中

时间:2019-04-22 00:19:33

标签: c# linq datatable

我对在C#中将数组值(double[])分配到DataTable中的列有疑问。我从DataTable中的一列派生double[],如下所示。

double[] ToBeChanged = mydatatable.AsEnumerable().Select(s => s.Field<double>("column")).ToArray<double>();

在更新ToBeChanged中的某些值之后,我想将其快速返回到原始列。如何才能尽可能简单或快速地实现它?

1 个答案:

答案 0 :(得分:0)

一种方法是使用.Zip方法

var pairs = mydatatable.AsEnumerble().Zip(toBeChanged, (row, value) => (row, value));

foreach (var (row, value) in pairs)
{
    row.SetField("column", value);
}

但是我不建议将其用于生产代码,因为正确性完全取决于行和值正确排序的假设。

其他可能的方法可能是:

  • 更新DataTable中的值。
  • DataRow实例传递给将更新值的方法
  • 使用字典将可更新值与行标识值相关联。