update multiple elements at once LINQ

前端 未结 6 2043
萌比男神i
萌比男神i 2020-12-17 08:42

Is it possible to set property on each element from List using LINQ.

for example:

var users = from u in context.Users where u.Name == \"George\" sele         


        
6条回答
  •  悲哀的现实
    2020-12-17 09:02

    You can create your own ForEach extension method:

    public static IEnumerable ForEach(this IEnumerable source, Action action)
    {
        foreach (var element in source)
        {
            action(element);
        }
    
        return source;
    }
    

    Then your code can be simplified to:

    context.Users.Where(x => x.Name == "George").ForEach(u => u.MyProp = false);
    

    EDIT: You could also yield return each item after the call to action() (no pun intended) to leave the deferred execution untouched.

提交回复
热议问题