将Lambda表达式更改为方法-LINQ

时间:2019-02-15 06:30:15

标签: c# linq

我有以下代码:

       foreach (var sr in searchResults.Select(
       result => new InterviewSearchResultUI
             {


             }
           )
        )

我需要在select方法内添加一些额外的逻辑,所以我需要将lambda表达式更改为可以放置更多逻辑的函数,例如:

       foreach (var sr in searchResults.Select(
       (result) 

           { 
             var a= a+1;
             new InterviewSearchResultUI
             {


             } 
           }
           )
        )

但是我找不到正确的方法,有帮助吗?

1 个答案:

答案 0 :(得分:0)

您很近:)

foreach (var sr in searchResults.Select(
    result => { 
        var a= a+1; // note that this line doesn't actually make sense
        return new InterviewSearchResultUI
         {
             ...
         };
    }
    )) {

}

多行lambda:

  • 仍然需要=>
  • {}之后有=>
  • 需要返回声明

如果您想将lambda重写为方法,则可以执行以下操作:

private static InterviewSearchResultsUI Transform(Result result) {
    var a= a+1;
    return new InterviewSearchResultUI
     {
         ...
     };
}

然后像这样在foreach中使用它:

foreach (var sr in searchResults.Select(Transform)) {

}