使用 lambda 表达式更新 linq 中的多个列

本文关键字:linq lambda 表达式 更新 使用 | 更新日期: 2023-09-27 18:32:07

我想使用 LinqLambda Expression 更新DataTable中的记录。我可以更新一列,如下所示

dtProduct.AsEnumerable().Where(i => i.Field<long>("ProductId") == Convert.ToInt64(id)).First().SetField("Qty", qty);

不明白如何:(更新其他人。我最终为每列写了几次更新。

使用 lambda 表达式更新 linq 中的多个列

我最终为每列写了几次更新。

代码由两部分组成:

  • 找到实例,以及
  • 设置其字段。

您可以通过引入变量来重用查找实例的结果:

var inst = dtProduct.AsEnumerable().Where(i => i.Field<long>("ProductId") == Convert.ToInt64(id)).First();

现在,您可以多次调用SetField

inst.SetField("Qty", qty);
inst.SetField("Price", price);
inst.SetField("Weight", weight);
List<DataGridViewRow> rows1 = 
             dataGridView1.Rows.Cast<DataGridViewRow>()
            .ToList()
            .FindAll(x => (x.Cells["Select"].Value=1).ToString().Equals("1")?true:false);

我们试图找到一些东西,并伪装地为所有行设置一个值。

x.Cells["Select"].Value=1

我们最不关心它给出的输出,但我们为每列"选择"设置值的目标成功了。