LINQ to SQL 的 GroupBy 不同於 T-SQL 的 GROUP BY:它不只回傳彙總值,而是回傳一組分群物件,每個分群物件包含:
Key:分群依據的欄位值(如 CategoryID = 7)
var q = from p in db.Products
group p by p.CategoryID into g
select g;
foreach (var group in q)
{
if (group.Key == 7) // 海鮮類
{
foreach (var product in group)
{
// 處理該分類下的每個產品
Console.WriteLine(product.ProductName);
}
}
}
外層 foreach 遍歷分群,內層 foreach 遍歷群組內元素。這使得「分群後再處理明細」的邏輯極為自然。