如前所述,匿名類型不只用於 Select,GroupBy 的 by 子句也可使用。但注意:OrderBy 不支援匿名類型排序。
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。SELECT [t0].[SupplierID], [t0].[CategoryID]
FROM [dbo].[Products] AS [t0]
GROUP BY [t0].[CategoryID], [t0].[SupplierID]
SQL GROUP BY 欄位順序與匿名類型屬性宣告順序一致。
var q = from p in db.Products
group p by new { Criterion = p.UnitPrice > 10 } into g
select g;
結果僅兩群:Criterion = true(>10)與 false(≤10)。展示了分群依據可以是任意運算式。