3

リストに次の値があります

Feb 13  100 
Feb 13  150 
Feb 13  127 
Feb 14  50

linqを使用して、前日の合計を含む各日付の合計で別のリストを返すにはどうすればよいですか?

例えば

Feb 13 357  (Sum of Feb 13)   
Feb 14 407  (Sum of Feb 14 + Sum of Feb 13)

いじりながら

list= list.OrderBy(i => i.date)
                    .Distinct().Select(
                i =>
                    {
                        np+= i.rh;
                        nh+= i.hm;
                        return new Po
                            {
                                date= i.date,
                                NH =  nh,

                            };
                    }).ToList();

これは次のリストを返します:

Feb 13  100 
Feb 13  250 
Feb 13  377 
Feb 14  427

私はちょうどしたいです

 Feb 13 357  
 Feb 14 407 
4

3 に答える 3

3
decimal runningTotal = 0;
var result = from item in items
             orderby item.Date
             group items by item.Date into grp
             let sum = items.Where(x => x.Date == grp.Key).Sum(x => x.Amount)
             select new
             {
                 Date = grp.Key,
                 Sum = runningTotal += sum,
             };
于 2013-02-14T18:31:15.887 に答える
0

先の値がわかっている場合は、このようなことを試すことができます

   var Total = listval.Sum(od => od.vall)+listval.where(od => od.date=="Feb 13").Sum(od =>
 od.vall)+listval.where(od => od.date=="Feb 14").Sum(od => od.vall);
于 2013-02-14T17:59:59.877 に答える
0

これを行うには、オブジェクトをグループ化し、グループ内で Sum を使用します。マークが投稿したリンクは、その方法を正確に示しています。

于 2013-02-14T18:08:25.187 に答える