我创建了一个类,它表示来自数据库查询的聚合记录:
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) (dat),然后我创建我的对象的list<>,并用我的数据库中的数据填充它
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(日期))和分销渠道对这些数据进行分组并对其进行计数。就我搜索stackoverflow而言,linq似乎是正确的“工具”。不幸的是,我并不熟悉这个特性,但大多数示例都是基于int或字符串的简单列表。在我的例子中,它是对象列表。
发布于 2014-09-22 19:16:12
可以使用以下Linq查询完成此操作
lst
.GroupBy(x => GetWeek(x.Dat))
.Select(x => new KeyValuePair<DayOfWeek, int>(x.Key, x.Count()))
.ToList();
int GetWeek() { ... }这将为您提供一个keyvaluepair列表,其中key是星期,值是给定日期的计数。
编辑:
我刚刚意识到问题是按周分组,而不是一周中的某一天。
https://stackoverflow.com/questions/25972439
复制相似问题