我创建了一个表示数据库查询聚合记录的类:
class list2d
{
private string ser;
private DateTime dat;
private int howmuch;
public list2d(string ser, DateTime dat, int howmuch)
{
this.ser = ser;
this.dat = dat;
this.howmuch = howmuch;
}
public string Ser { get; set; }
public DateTime Dat { get; set; }
public int HowMuch { get; set; }
}
因此每个对象都会返回有关数量(如何)的信息(每天一个分发渠道(ser)) 然后我创建了列表<>我的对象并用我数据库中的数据填充
List<list2d> listz = new List<list2d>();
foreach (DataRow row in dt.Rows)
{
listz.Add(new list2d(
row["SOURCE"].ToString(), (DateTime)row["DATE"], (int)row["HOWMUCH"]));
}
所以现在我想按周(return_week(DATE))和分销渠道对这些数据进行分组并计算它。 至于我搜索stackoverflow似乎linq是正确的“工具”。不幸的是,我不熟悉这个功能,但大多数示例都基于int或字符串列表。在我的例子中,它是对象列表。
答案 0 :(得分:0)
可以使用以下Linq查询
完成lst
.GroupBy(x => GetWeek(x.Dat))
.Select(x => new KeyValuePair<DayOfWeek, int>(x.Key, x.Count()))
.ToList();
int GetWeek() { ... }
这将为您提供keyvaluepairs列表,其中键是星期,值是给定日期的计数。
编辑:
刚刚意识到问题是在一周内分组,而不是一周中的那一天。