具有多个group by的LINQ-Query

时间:2012-07-03 14:57:54

标签: c# linq

我有以下数据结构(简化):类TestClass的巨大列表

public class TestClass
{
   public string Name { get; set; }
   public int Value { get; set; }
   public DateTime Date { get; set; }
}

我正在尝试查找LINQ-Query以获取一天具有相同名称和值的项目数。我尝试了多个groupby-Statement,但我没有得到它... 例如:

Name  | Value | Date
Alice | 42    | 11.02.1900
Bob   | 4211  | 22.03.2030
Bob   | 4211  | 22.03.2030
Bob   | 42    | 22.03.2030
Bob   | 42    | 22.03.2030
Alice | 4711  | 30.01.2045

我想得到的这些数据(最后一个数字是重要数据)

  

Alice,42,11.02.1900,1   Bob,4211,22.03.2030,3   Bob,42,22.03.2030,2   Alice,4711,30.01.2045,1

感谢您的帮助!

此致

2 个答案:

答案 0 :(得分:2)

您正在寻找

list.GroupBy(o => new { o.Name, o.Value, o.Date })
    .Select(g => new { g.Key.Name, g.Key.Value, g.Key.Date, Count = g.Count() })

答案 1 :(得分:0)

from i in coll
group i by new { i.Name, i.Value, i.Date } into g
select new { key = g.Key, count = g.Count() }