基本上我正在寻找一种在LINQ中选择列表中的前三个分组对象的方法。
例如,一个列表可能包含:
{"AAA", "AAA", "AAA", "AAA", "BBB", "BBB", "CCC", "CCC", "CCC", "CCC", "CCC", "CCC", "DD", "EE", "EE"}
而我想要返回的列表将会是:
{"AAA", "AAA", "AAA", "BBB", "BBB", "CCC", "CCC", "CCC", "DD", "EE", "EE"}
这意味着它将返回前三个分组元素(如果没有3个元素,它将返回尽可能多的元素1,2)
我所做的是:
例如,一个列表可能包含:
{"AAA", "AAA", "AAA", "AAA", "BBB", "BBB", "CCC", "CCC", "CCC", "CCC", "CCC", "CCC", "DD", "EE", "EE"}
而我想要返回的列表将会是:
{"AAA", "AAA", "AAA", "BBB", "BBB", "CCC", "CCC", "CCC", "DD", "EE", "EE"}
这意味着它将返回前三个分组元素(如果没有3个元素,它将返回尽可能多的元素1,2)
我所做的是:
List<Object> sorted = mainList.OrderBy(x => x.NAME).ToList();
我需要使用某种形式的代码,才能返回上面的第一个列表。
我想我需要使用一些
.Select() or .SelectMany()
但我不太确定如何指定获取每个组的前X个,并且我没有找到任何在线示例展示我需要的内容。
谢谢