C# 通过按多个特性分组来创建对象列表

C# 通过按多个特性分组来创建对象列表,c#,linq,collections,C#,Linq,Collections,我有一个列表,其中T是一个自定义对象Cow。现在,我使用下面的代码根据Color将该列表拆分 cowGroups = from x in cows group x by x.Color into y select y.ToList().ToList(); 然后我使用cowGroups并在其上运行foreach,对每个Cow执行一组操作。这个列表实际上显示为IEnumerable 我想做的是在我的初始列表上进行双重分组,这样我就可以根据它们的颜色和

我有一个
列表
,其中
T
是一个自定义对象
Cow
。现在,我使用下面的代码根据
Color
将该列表拆分

cowGroups = from x in cows
            group x by x.Color into y
            select y.ToList().ToList();
然后我使用
cowGroups
并在其上运行
foreach
,对每个
Cow
执行一组操作。这个列表实际上显示为
IEnumerable

我想做的是在我的初始
列表上进行双重分组,这样我就可以根据它们的颜色和大小进行分组。结果仍然应该是
IEnumerable
,但是每个
列表都将基于颜色和大小的组合来创建

一位同事推荐了一种
ToLookup
方法,但它会返回一个键/值对列表,而我似乎无法处理该对的值部分


我想我正在寻找一种直接进入列表集合的方法,或者将
ToLookup
方法的结果转化为列表集合。

您可以通过包含两个属性的类进行分组:

group x by new { x.Color, x.Size } into y

哦,我的。。。我现在觉得自己很愚蠢。我尝试过的一个方法是“cows.GroupBy”(new{x.Color,x.Size}),但它产生了与ToLookup类似的结构。编辑:我应该补充一点,这正是我所需要的。非常感谢。