在 LINQ Lambda 表达式中使用 GroupBy、Count 和 Sum
Posted
技术标签:
【中文标题】在 LINQ Lambda 表达式中使用 GroupBy、Count 和 Sum【英文标题】:Using GroupBy, Count and Sum in LINQ Lambda Expressions 【发布时间】:2011-03-25 18:03:36 【问题描述】:我有一组具有重量、体积和所有者属性的盒子。
我想使用 LINQ 获取框信息的汇总列表(按所有者)
例如
**Owner, Boxes, Total Weight, Total Volume**
Jim, 5, 1430.00, 3.65
George, 2, 37.50, 1.22
谁能告诉我如何使用 Lambda 表达式来做到这一点?
【问题讨论】:
【参考方案1】: var ListByOwner = list.GroupBy(l => l.Owner)
.Select(lg =>
new
Owner = lg.Key,
Boxes = lg.Count(),
TotalWeight = lg.Sum(w => w.Weight),
TotalVolume = lg.Sum(w => w.Volume)
);
【讨论】:
【参考方案2】: var q = from b in listOfBoxes
group b by b.Owner into g
select new
Owner = g.Key,
Boxes = g.Count(),
TotalWeight = g.Sum(item => item.Weight),
TotalVolume = g.Sum(item => item.Volume)
;
【讨论】:
【参考方案3】:var boxSummary = from b in boxes
group b by b.Owner into g
let nrBoxes = g.Count()
let totalWeight = g.Sum(w => w.Weight)
let totalVolume = g.Sum(v => v.Volume)
select new Owner = g.Key, Boxes = nrBoxes,
TotalWeight = totalWeight,
TotalVolume = totalVolume
【讨论】:
以上是关于在 LINQ Lambda 表达式中使用 GroupBy、Count 和 Sum的主要内容,如果未能解决你的问题,请参考以下文章
在 LINQ Lambda 表达式中使用 GroupBy、Count 和 Sum
帮助我使用实体框架从 SQL 转换为 linq 嵌套 lambda 表达式
Lambda 表达式 LINQ 等效于 SQL 在同一表/变量上存在查询