根据条件使用lambda替换列值
本文关键字:替换 lambda 条件 | 更新日期: 2023-09-27 18:20:21
使用lambda,我想根据以下条件替换数据表列item_type
和item_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(...);
如果可能的话,我同意在您的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
。