基本上我在LINQ中寻找一种方法来选择列表中的第一个,即3个分组对象.
例如,列表可能包含:
{"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个(如果它没有3个元素,它将返回许多它可以1,2)
到目前为止我所拥有的是:
List<Object> sorted = mainList.OrderBy(x => x.NAME).ToList();
Run Code Online (Sandbox Code Playgroud)
它只返回上面的第一个列表.
我想我需要使用某种形式的
.Select() or .SelectMany()
Run Code Online (Sandbox Code Playgroud)
但我不太确定如何指定获得每个组的第一个X数量,而我没有在网上找到任何显示我需要的例子.
谢谢
要获得每个组中的前X个项目,您需要先对所有项目进行分组.对项目Take进行分组后,您可以从该序列中获取第一个最新的X项:
var query = data.GroupBy(item => item.Name)
.SelectMany(group => group.Take(3));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |