LINQ 条件和

pbl*_*lyt 1 c# linq sum where

我有一个模型“水果”存储这样的数据:

date         fruit_code   count
2013/09/30   apple        10
2013/09/30   pear         5
2013/10/01   apple        1
2013/10/01   pear         2
2013/10/02   apple        5
Run Code Online (Sandbox Code Playgroud)

我想要的只是显示每个月每个水果的总和,输出将是这样的:

date         no_of_apple   no_of_pear
2013/09      10            5
2013/10      6             2
Run Code Online (Sandbox Code Playgroud)

我试图像这样构建 linq 但被卡住了:

from o in fruit
let keys = new 
{ 
   date = o.date.ToString("yyyy/MM"),
   fruit = o.fruit_code
}
group o by keys into grp
select new 
{
   date = grp.Key.date,
   no_of_apple = // I got stucked here, wondering how to 
   no_of_pear = // calculate the conditional sum
}
Run Code Online (Sandbox Code Playgroud)

先感谢您。

Bal*_*ick 5

尝试这个:

var result = fruit.GroupBy(i => i.date)
            .Select(i => new
            {
                date = i.Key,
                no_of_apple = i.Where(j => j.fruit_code == "apple").Sum(k => k.count),
                no_of_pear = i.Where(j => j.fruit_code == "pear").Sum(k => k.count)
            });
Run Code Online (Sandbox Code Playgroud)