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

走進 LINQ:LINQ to Objects (上) — 基礎篇

     編輯:關於.NET

LINQ 查詢操作本質是為 IEnumerable 增加的擴充方法(查詢運算子),可用方法呼叫風格:

books.Where(b => b.Title.StartsWith("L"))
     .OrderBy(b => b.Price)
     .Select(b => new { key = b.Title, value = b.Price });

所有方法操作並回傳 IEnumerable。按用途分類:

用途方法
映射/投影Select、SelectMany
條件過濾Where、OfType
排序OrderBy、OrderByDescending、Reverse、ThenBy、ThenByDescending
分組GroupBy、ToLookup
聯結GroupJoin、Join
轉型Cast(將非泛型 IEnumerable 轉為泛型)

微軟認為方法呼叫風格不夠人性化,推出「查詢運算式」(語法糖),近似 SQL:

from book in books
where book.Title.StartsWith("L")
orderby book.Price ascending
select new { key = book.Title, value = book.Price };

C# 編譯器內部將查詢運算式轉為方法呼叫。語法結構(參考 LINQ in Action 圖示):

查詢運算式以 from 起始,接著可選的聯結、過濾、排序,最後以 select 或 group by 結束。from 引入範圍變數遍歷來源序列。

查詢運算式與方法對應

  • GroupBy ↔ group ... by 或 group ... by ... into ...(後者可續接查詢)
  • ThenBy ↔ orderby ..., ...
  • Join ↔ join ... in ... on ... equals ...(on 左右順序對應 outer/inner key selector)

部分查詢運算子無對應查詢運算式(VB.NET 較完整),複雜查詢建議用方法呼叫風格可讀性較佳。

理論基礎至此告一段落,後續將以實例講解。歡迎建議指教。

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