假设,举例来说,在我的C#代码中,我定义了一个名为
MyClass
的类:public class MyClass
{
public string GroupName;
public DateTime Dt;
.... other properties ....
}
假设我有以下的List<MyClass>
(将其显示为表格似乎是最简单描述其内容的方法):
GroupName: Dt: Val:
Group1 2016/01/01 a
Group1 2016/01/02 b
Group1 2016/01/03 c
Group2 2016/01/01 d
Group2 2016/01/02 e
Group3 2016/01/01 f
Group3 2016/01/02 g
Group3 2016/01/03 h
我希望从这个列表中获取所有数据:
- 首先按
Dt
分组 - 其次按
GroupName
分组
因此,(我确信这是错误的,但我希望它能解释我正在寻找什么),我想获得一个IEnumerable<IGrouping<DateTime,IEnumerable<IGrouping<string,IEnumerable<MyClass>>>>
我最好的尝试是以下内容:
return MyList
.GroupBy(d => d.Dt)
.GroupBy(grp => grp.ToList().GroupBy(d => d.GroupName));
我知道这是错误的,但这是我能想到的唯一解决方法。 我应该如何得到我需要的东西?
Dts
,然后再迭代Groupnames
- 您的解决方案是否可以实现这一点? - John Bustos.
查看发生了什么:返回 MyList .GroupBy(d => d.Dt) .Select(g1 => new { Dt = g1.Key, Dts = g1.GroupBy(d => d.GroupName) .Select(g2 => new { GroupName = g2.Key, GroupNames = g2 }) });
- gzak