首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

LINQ 查詢語法新增強:let 關鍵字簡化子查詢與提升可讀性

     編輯:關於.NET

.NET 3.5 SP1 引入 let 關鍵字,允許在查詢運算式中引入範圍變數儲存子查詢結果,類似「查詢內的區域變數」,大幅改善巢狀子查詢的可讀性。

語法比較

傳統子查詢 (巢狀)

var query = from num in numbers
            select num * (from n in numbers
                          where n % 2 == 0
                          select n).Count();

使用 let 關鍵字

var query = from num in numbers
            let evenNumbers = from n in numbers
                              where n % 2 == 0
                              select n
            select num * evenNumbers.Count();

完整範例

static void Main()
{
    int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    var query = from num in numbers
                let evenNumbers = from n in numbers
                                  where n % 2 == 0
                                  select n
                select num * evenNumbers.Count();

    foreach (var item in query)
        Console.WriteLine(item); // 輸出 5, 10, 15, 20, 25, 30, 35, 40, 45
    Console.Read();
}

優點總結

  • 層次分明:子查詢邏輯提升至頂層,主查詢專注核心投射。
  • 可重用:同一 let 變數可在 where/orderby/select 多處引用。
  • 效能:編譯器最佳化後與巢狀寫法等效,無額外負擔。

let 本質是編譯器語法糖,編譯為 SelectMany + 透明識別項,不改變查詢語意。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved