出于某种原因,我无法获得正确执行以下操作的Linq语句的正确vb.net语法(visual studio 2010)。最简单,最直接的代码将不胜感激。
问题在于:
我有大约45,000个对象的集合,需要总结一些数据。
Collection name: DrillableData
Object name: Ord_Detail
感兴趣的领域:
Ord_detail.routeno
(整数 - 用于识别路线编号。在45,000个项目的总人口中,只有20个左右的路线编号。)
Ord_Detail.TotPrice
(双倍 - 包含销售金额)
Ord_Detail.ProdQty
(整数 - 包含销售数量)
(还有其他领域,但我只对routeno总结的TotPrice和ProdQty感兴趣。)
我需要的是通过routeno总结Totprice和ProdQty。
结果应该产生一个大约20行的列表,每行有3行数据Route#,TotPrice,ProdQty。你能给我一个查询集合的Linq代码吗?
到目前为止,我已经能够把它放在一起,但是,显然这不会产生我需要的东西。
Dim Thistotal2 As Object = (From Ord_detail In DrillableDetails
Group Ord_detail By Ord_detail.routeno _
Into Group _
Select totprice = Group.Sum(Function(ord_detail) ord_detail.totprice))
For Each totprice In Thistotal2
Total = totprice
Next
答案 0 :(得分:0)
试试这个:
Dim TotalsByRoute = From Order_Detail In DrillableDetails
Order By Order_Detail.routeno
Group Order_Detail By Order_Detail.routeno
Into Route = Group
Select New With {
.RouteNumber = routeno,
.TotalQty = Route.Sum(Function(x) x.ProdQty),
.TotalPrice = Route.Sum(Function(x) x.TotPrice)
}