値がtrueの場合、リスト内のすべてのアイテムをカウントし、falseの値をカウントしたい。
私はこれを持っています:
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();
これにより、次のコンパイルエラーが発生します。
デリゲート型ではないため、ラムダ式を '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();
count メソッドから式を削除すると、g=> !g.isScheduled
それが受け入れられるのはなぜですか?