如何在LINQ中使用sum与group?

时间:2011-12-05 09:26:16

标签: c# .net linq

我有以下很多公司。有些公司有主题,有些则没有。像这样:

CompanyID  Subjects
1          2
2          4
3          1
4          0

我正在尝试创建一个LINQ报告,它会向我提供这些信息。这就是我到目前为止所拥有的。它正确地进行外连接,以便即使没有主题的公司也包括在列表中。获得该数据后,我按公司名称对日期进行分组。问题是最后一次选择无法正常工作。有人可以建议我如何得到这笔钱。我能够使用count(),但我需要一个总和,因为我设置的方式是当没有主题时,值为0进入主题,而有1值则为1。因此,通过总结小组每次休息的主题数量,我应该能够找出分配给公司的主题数量。

var test1 = from c in companies
            join s in subjects
              on "0000" + c.RowKey equals s.PartitionKey into outer
            from s in outer.DefaultIfEmpty()
            select new 
            {
                Title = c.Title,
                Subjects = ((s == null) ? 0 : 1)
            } into split
            group split by split.Title into g
            select new
            {
                Title = g.Key,
                total = g.sum(s => s.Subjects)
            };

1 个答案:

答案 0 :(得分:0)

你写了没有首都“s”的“sum”方法。 C#区分大小写,所以我认为这是你的问题,如果你遇到编译错误。

否则包括查询的实际结果和您的期望,因此我们可以比较它并尝试找到问题。