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

C# 3.0 入門系列(九):GroupBy 進階——匿名類型實現多欄位複合鍵分群

     編輯:關於C語言

GroupBy 同樣支援匿名類型

如前所述,匿名類型不只用於 Select,GroupBy 的 by 子句也可使用。但注意:OrderBy 不支援匿名類型排序。

複合鍵分群:同時依 CategoryID 與 SupplierID 分群

var q = from p in db.Products
        group p by new { p.CategoryID, p.SupplierID } into g
        select new { g.Key, g };
  • by new { ... } 建立複合鍵匿名類型。
  • g.Key 現在是一個匿名類型實例,包含 CategoryID、SupplierID 兩個屬性。
  • 存取具體值需寫 g.Key.CategoryID、g.Key.SupplierID。

轉譯 SQL 驗證

SELECT [t0].[SupplierID], [t0].[CategoryID]
FROM [dbo].[Products] AS [t0]
GROUP BY [t0].[CategoryID], [t0].[SupplierID]

SQL GROUP BY 欄位順序與匿名類型屬性宣告順序一致。

運算式分群:依單價是否大於 10 分群

var q = from p in db.Products
        group p by new { Criterion = p.UnitPrice > 10 } into g
        select g;

結果僅兩群:Criterion = true(>10)與 false(≤10)。展示了分群依據可以是任意運算式。

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