LINQ Let 运算符与 lambda 语法



我知道linq查询语法中有let运算符。存储子表达式的结果以便在后续子句中使用它很有用。

  • https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/let-clause

但我更喜欢使用 linq lambda 语法。当我使用大量连接时,我得到对象链(代表每个级别的连接,即:'

s.secondJoin.firstJoin.dd.DataType`

我想在变量中设置一些子结果,并将其用于以下更方便的工作,即:

let joinResult = s.secondJoin.firstJoin及之后
joinResult.dd.DataType

问:在 linq lambda 语法中可以吗?

等效于 lambda 语法中的 let Select创建匿名类型,例如:

items.Select(s => new
{
    s = s,
    joinResult = s.secondJoin.firstJoin
})

在此之后,您可以像在查询语法中使用let一样同时使用 sjoinResult

最新更新