首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对对象的list<>进行分组

如何对对象的list<>进行分组
EN

Stack Overflow用户
提问于 2014-09-22 18:57:42
回答 1查看 180关注 0票数 0

我创建了一个类,它表示来自数据库查询的聚合记录:

代码语言:javascript
复制
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<>,并用我的数据库中的数据填充它

代码语言:javascript
复制
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或字符串的简单列表。在我的例子中,它是对象列表。

EN

回答 1

Stack Overflow用户

发布于 2014-09-22 19:16:12

可以使用以下Linq查询完成此操作

代码语言:javascript
复制
lst
   .GroupBy(x => GetWeek(x.Dat))
   .Select(x => new KeyValuePair<DayOfWeek, int>(x.Key, x.Count()))
   .ToList();

int GetWeek() { ... }

这将为您提供一个keyvaluepair列表,其中key是星期,值是给定日期的计数。

编辑:

我刚刚意识到问题是按周分组,而不是一周中的某一天。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25972439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档