如何使用LINQ更新具有相同值的所有记录?

mis*_*sho 3 c# linq-to-sql

任何人都可以帮助我:我想从数据表中选择所有记录,例如sid = 123,然后用sid = 456保存它们.

如何使用LINQ执行此操作?

Kik*_*aru 8

items.Where(i=>i.sid == 123).ToList().ForEach(i=>i.sid = 456);
Run Code Online (Sandbox Code Playgroud)

或者更确切地说使用普通的foreach

foreach (var item in items.Where(i=>i.sid == 123))
{
    item.sid = 456
}
Run Code Online (Sandbox Code Playgroud)

编辑:抱歉,我没注意到那个数据表.你不能直接在数据表上查询行(它们没有实现IEnumerable)

但你可以做这样的事情

using System.Data; //System.Data.DataSetExtensions.dll
datatable.AsEnumerable().Where(row=>row.Field<int>("sid") == 1234)
Run Code Online (Sandbox Code Playgroud)