需要帮助LINQ查询

时间:2011-09-02 16:51:02

标签: c# linq

我有以下课程:

internal class ModuleScrap
    {
        public System.DateTime ReadTime { get; set; }
        public string ScrapReason { get; set; }
        public Int16 NetScrap { get; set; }
    }

我可以使用LINQ查询帮助检索一系列日期(这是简单部分),ScrapReason上的组之间的所有行,并确定每个组的NetScrap之和。我对LINQ中的分组没有多少经验。

1 个答案:

答案 0 :(得分:7)

像我这样的东西,我怀疑:

var query = from scrap in scraps
            where scrap.ReadTime >= minDate && scrap.ReadTime <= maxDate
            group scrap by scrap.ScrapReason into g
            select new { Reason = g.Key, Total = g.Sum(x => (int) x.NetScrap) };

请注意int强制转换是因为Int16未定义var query = from scrap in scraps where scrap.ReadTime >= minDate && scrap.ReadTime <= maxDate group (int) scrap.NetScrap by scrap.ScrapReason into g select new { Reason = g.Key, Total = g.Sum() }; 值。另一种方法是更改​​分组:

{{1}}

他们会给出相同的结果 - 这只是你喜欢的问题。