我希望使用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
在一行中完成这个操作?
ToList
是多余的,因为DataTable.Select
已经返回了一个集合,因此你在浪费内存。你接受的LINQ
方法根本不需要另一个集合(除了DataTable
)。foreach
直接枚举查询。你也可以在foreach
中枚举DataTable.Rows
并使用if(condition...)
来检查是否必须更新此行。这将是最有效和直接的方法。 - Tim Schmelter