按日期列表分组并总结销售额

时间:2016-12-22 11:48:38

标签: c# asp.net asp.net-mvc list group-by

我有一种情况,我定义了一个类如下:

class Item
{
List<DateTime> _TransactonDatesPast30Days =  new List<DateTime>();
}

所以情况可能如下:

I have 25 transaction dates in the list... 

下一项:

40 transaction dates 

所以现在我有一个包含所有这些参数的项目列表,如下所示:

List<Item> _items = new List<Item>();

现在我需要按列表中的列表进行分组,以获得最终列表中每天的销售数量......

例如:

12月12日在所有列表中发生了14次,现在它的数量是14,这将代表该日期的销售数量......

在正常情况下,我会将它们分组:

ViewBag.LineGraph = lista
.GroupBy(l => l.TrasnactionDate)
.Select(cl => new Item
{
TrasnactionDate = cl.Key.TrasnactionDate.Date,
SaleNumber = cl.Count(c => cl.Key)
})
.OrderBy(x => x.TrasnactionDate)
.Where(x=>x.SaleNumber>0)
.ToList();

但是当我在列表中列出我需要分组时,它会让我感到困惑,当我在列表中有一个需要按日期分组的列表时,我不知道该怎么做...

1 个答案:

答案 0 :(得分:1)

//这不是我的分组

 var result = _items.Select(x => x._TransactonDatesPast30Days).GroupBy(y => y).Select(x => new Item {_TransactonDatesPast30Days =  x.Key ,Salesnumber = x.Count()});

采取此解决方案:更新2

   var resultt2 = _items.Select(x => x._TransactonDatesPast30Days).
                Select(r => r.GroupBy(x => x).Select(l => new Item { _TransactonDatesPast30Days = new List<DateTime>{l.Key}, Salesnumber = l.Count() }));