Lists.ForEach使用LINQ/LAMBDA选择条件

abc*_*cba 9 c# linq

我有名单,我; 只想根据LinQ/LAMBDA选择某些标准

我的代码是

Lists.ForEach(x => x.IsAnimal == false { /* Do Something */ } );
Run Code Online (Sandbox Code Playgroud)

我收到错误"在此部分中只有赋值,调用,递增,递减和新对象表达式可以用作语句" x.IsAnimal == false

我知道我们可以通过for循环轻松实现这一目标,但我希望通过使用LinQ/LAMBDA来学习更多内容

kra*_*ew4 20

在使用ForEach之前,只需使用WhereToList

Lists.Where(x => !x.IsAnimal).ToList().ForEach(...)
Run Code Online (Sandbox Code Playgroud)


Lew*_*rin 18

那是行不通的,因为你无法false{}构建.

Lists.ForEach(x => { 
                  if(x.IsAnimal){
                       //Do Something
                  }
             } );
Run Code Online (Sandbox Code Playgroud)


O. *_*per 6

请阅读lambda表达式语法:lambda表达式表示方法; =>参数列表之前的部分,之后的部分是返回结果的单个表达式,或方法体.

您可以在该方法体中添加限制:

Lists.ForEach(x => {
                  if (!x.IsAnimal) {
                      // do something
                  }
              });
Run Code Online (Sandbox Code Playgroud)

  • +1表示没有建立新的List只是为了调用ForEach (3认同)