我有List<T>
其中T
是自定义对象Cow
。现在我使用以下代码根据Color
分割该列表。
cowGroups = from x in cows
group x by x.Color into y
select y.ToList().ToList();
然后我选择cowGroups
并在其上运行foreach
,为每个Cow
执行一系列操作。此列表实际上显示为IEnumerable<List<Cow>>
我要做的是在我的初始List<Cow>
上进行双重分组,以便根据颜色和大小进行分组。结果仍应为IEnumerable<List<Cow>>
,但每个List<Cow>
都将根据颜色和大小的组合而制作。
一位同事建议使用ToLookup
方法,但会返回一个键/值对的列表,而我似乎无法对该对的值部分做任何事情。
我想我正在寻找直接转到列表集合的方法,或者将ToLookup
方法的结果转换为列表集合。
答案 0 :(得分:5)
您可以按包含两个属性的类进行分组:
group x by new { x.Color, x.Size } into y