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

LINQ 學習筆記 (三) 語法結構與查詢語法糖

     編輯:關於C語言

LINQ 查詢語法結構

LINQ 查詢表達式由 from、where、orderby、select 等子句組成,編譯器會將其轉換為方法呼叫鏈(擴充方法)。

範例:查詢以 a 開頭的字串,降序輸出

string[] list = { "adobe", "Excel", "acer", "query", "async", "xianfen", "apple", "amazon", "player", "best", "wow" };

// 查詢語法
var result = from word in list
             where word.StartsWith("a")
             orderby word descending
             select word;

result.ToList().ForEach(str => Console.WriteLine(str));

/* 輸出:
async
apple
amazon
adobe
acer
*/

等價的方法語法(擴充方法鏈)

var result = list.Where(str => str.StartsWith("a"))
                 .OrderByDescending(str => str);

更底層的靜態方法呼叫

var result = Enumerable.OrderByDescending(
                 Enumerable.Where(list, str => str.StartsWith("a")),
                 str => str);

關鍵觀察

  • 查詢語法本質是「語法糖」,編譯後轉為 Enumerable 靜態方法呼叫。
  • 執行階段仍是 .NET 2.0 基礎類別庫,LINQ 不需要新版 CLR。
  • 查詢結果型別為 IEnumerable<TElement> 或其衍生型別。
  • 可使用 ILDASM 檢視 IL 或參考原始碼深入理解實作細節。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved