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类似的结构。编辑:我应该补充一点,这正是我所需要的。非常感谢。