根据条件使用lambda替换列值

本文关键字:替换 lambda 条件 | 更新日期: 2023-09-27 18:20:21

使用lambda,我想根据以下条件替换数据表列item_typeitem_status的值:

  • item_type="A",然后替换为"Apple"
  • item_type="B"替换为"Banana"
  • else显示原始数据
  • item_status="A",然后替换为"Apple"
  • item_status="B"替换为"Banana"
  • else显示原始数据

command.CommandText = "select [item no], item_type, item_status from dbo.GetItems()";
command.CommandType = CommandType.Text;
da.SelectCommand = command;
da.Fill(dt);
dgItems.DataSource = dt;

我想要这样的东西:

dgItems.DataSource = dt.Select(...);

根据条件使用lambda替换列值

如果可能的话,我同意在您的SQL代码中首先这样做以获得所需的数据是最好的选择。

要回答所问的问题:

Array.ForEach(dt.Rows.Cast<DataRow>().ToArray(),
              row =>
              {
                  if (row.Field<string>("item_type") == "A")
                      row.SetField("item_type", "Apple");
                  else if (row.Field<string>("item_type") == "B")
                      row.SetField("item_type", "Banana");
                  if (row.Field<string>("item_status") == "A")
                      row.SetField("item_status", "Apple");
                  else if (row.Field<string>("item_type") == "B")
                      row.SetField("item_status", "Banana");
              });

这将修改原始的DataTable