【发布时间】:2011-03-20 22:14:10
【问题描述】:
我在执行内联 .GroupBy() 和 .Sum() 操作时遇到了一些麻烦。
我有一个通过 let 获得的数据子集,因此它的返回类型已经是匿名的。希望这个示例中有足够的代码来展示我想要实现的目标......
from r in Repo.R
join f in Repo.F
on f.ID equals r.FFK
let totalB = Repo.B
.Join(
b => b.FKID,
f => f.ID
(b, f) => new { b.ID, b.Qty, b.Fee })
.Where(
b => b.someCriteria == someInput)
group r by new
{
r.Name,
TotalFee = totalB
.GroupBy(tb => tb.TypeId)
.Sum( /*having trouble here*/ )
}
into rgroup
select new FinalOutput
{
rgroup.Key.Name,
rgroup.Key.TotalFee
}
我需要一个有效的:
Func<IGrouping<int, anonymous type>, int> selector
或
Expression<Func<IGrouping<int, anonymous type>, decimal>> selector
【问题讨论】:
-
你忘了说你想做什么。您可以使用
g => g.Count()作为其中之一(仅作为示例)。顺便说一句,你没有太多嵌套组吗? -
我相信我需要嵌套的 GroupBy 来帮助拆分一组数据,这些数据是在 .Contains(List
) 操作中获取的,我需要一些求和和计数操作。我确实需要对具有“双”值而不仅仅是计数的字段求和... -
@SLaks,不要太关注...
-
您能否给我们提供一组您将要查询的示例数据以及您想要的结果?