gpt4 book ai didi

C# LINQ 按对象属性排序列表,选择 X 金额

转载 作者:行者123 更新时间:2023-12-01 20:13:10 29 4
gpt4 key购买 nike

基本上,我正在 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();

它只返回上面的第一个列表。

我想我需要使用某种形式

 .Select() or .SelectMany()

但我不太确定如何指定获取每个组的前 X 数量,而且我还没有在网上找到任何显示我需要的示例的内容。

谢谢

最佳答案

要获取每组中的前 X 个项目,您需要首先对所有项目进行分组。对项目进行分组后,Take 允许您从该序列中获取前最多 X 个项目:

var query = data.GroupBy(item => item.Name)
.SelectMany(group => group.Take(3));

关于C# LINQ 按对象属性排序列表,选择 X 金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938849/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com