我想使用LINQ查询在一行中更新DataTable的两列。目前,我正在使用以下两行代码来做同样的事情:
oldSP.Select(string.Format("[itemGuid] = '{0}'", itemGuid)).ToList<DataRow>().ForEach(r => r["startdate"] = stDate);
oldSP.Select(string.Format("[itemGuid] = '{0}'", itemGuid)).ToList<DataRow>().ForEach(r => r["enddate"] = enDate);
如何使用一个
Select
在一行中完成此操作? 最佳答案
您可以在一个“行”中完成此操作,只需将适当的操作委托(delegate)传递给ForEach方法即可:
oldSP.Select(string.Format("[itemGuid] = '{0}'", itemGuid))
.ToList<DataRow>()
.ForEach(r => {
r["startdate"] = stDate;
r["enddate"] = enDate;
});
您还可以使用LINQ to DataSet(对我而言,比单行代码更具可读性):
var rowsToUpdate =
oldSP.AsEnumerable().Where(r => r.Field<string>("itemGuid") == itemGuid);
foreach(var row in rowsToUpdate)
{
row.SetField("startdate", stDate);
row.SetField("enddate", enDate);
}
关于c# - 使用LINQ更新数据表中的两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19855772/