【发布时间】:2013-09-01 06:28:31
【问题描述】:
如果值为真,我想计算列表中的所有项目,并计算假值。
我有这个:
Items.GroupBy(
i => i.ItemID,
i => new { isScheduled = i.isScheduled },
(key, g) => new ItemStatistics()
{
ItemID = key,
ScheduledItems = g.Count(g=>g.isScheduled),
UnscheduledItems = g.Count(g=> !g.isScheduled)
}).ToList();
这给了我以下编译错误:
无法将 lambda 表达式转换为类型 'System.Collections.Generic.IEqualityComparer' 因为它不是 委托类型
好像它期望不同的方法重载
当我这样做时,一切似乎都很好......
Items.GroupBy(
i => i.ItemID,
i => new { isScheduled = i.isScheduled },
(key, g) => new ItemStatistics()
{
ItemID = key,
ScheduledItems = g.Count(),
UnscheduledItems = g.Count()
}).ToList();
为什么当我从它接受的计数方法中删除g=> !g.isScheduled 表达式时?
【问题讨论】:
-
您在
ScheduledItems = g.Count()和UnscheduledItems = g.Count()之间漏掉了一些,? -
@KingKing nope...它在代码中带有逗号..我只是复制错了..(编辑了问题代码...)
标签: c# asp.net-mvc linq grouping linq-to-objects