将数据表中的列相乘

Sup*_*ron 6 c# datatable

我在C#中有一个带有"价格"列和"分配"列的数据表,我需要将price列乘以分配列,并将结果放在price列中.有没有办法没有循环表?我尝试过这样的事情:

DataTable dt = getData();
dt.Columns["Price"].Expression = "Allocation * Price";
Run Code Online (Sandbox Code Playgroud)

但显然这给了我以下例外:

Cannot set Expression property due to circular reference in the expression.
Run Code Online (Sandbox Code Playgroud)

有谁知道另一种方法来实现这一目标?先谢谢.

Dyl*_*ith 4

您可以使用 LINQ 表达式在一行中完成此操作:

dt.Rows.ForEach(x => x["Price"] = (double)x["Price"] * (double)x["Allocation"]);
Run Code Online (Sandbox Code Playgroud)

  • 4 票赞成无法编译的方法?“DataRowCollection”不是“List<DataRow>”。但请不要使用`dt.Rows.Cast<DataRow>().ToList().ForEach`。最简单、最有效的方法是使用简单的“foreach”循环。 (2认同)