gpt4 book ai didi

c# - 获取每个项目的最大值通用列表

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:48 25 4
gpt4 key购买 nike

我想知道你是否可以帮忙。

我有一个信息列表;

客户编号序号

这可能包含以下数据;

客户端编号:0000001,序列号:1
客户端编号:0000001,序列号:2
客户端编号:0000001,序列号:3
客户端编号:0000001,序列号:3
客户端编号:0000002,序列号:1
客户端编号:0000002,序列号:1
客户端编号:0000002,序列号:2
客户端编号:0000002,序列号:2

我想生成一个最大序列号列表。

请注意,序列号可以重复多次,如上例所示。

所以我想从示例中得出的列表是;

客户端编号:0000001,序列号:3
客户端编号:0000001,序列号:3
客户端编号:0000002,序列号:2
客户端编号:0000002,序列号:2

我试过了;

  var x = criticalNotesData.OrderBy(y => y.ClientNo)
.ThenBy(z => z.SequenceNo).ToList();
var m = x.Max(r => r.SequenceNo).ToList();

但 max 只是提供列表中的最大序列号,而不是每个客户端。

谢谢,

大卫

最佳答案

使用 GroupBy 两次 然后 OrderByDescending 得到 First 而不是使用 Max ,通过这种方式,您不需要创建新对象并且仍然获得重复的最大项目

var result = criticalNotesData.GroupBy(x => x.ClientNo)
.SelectMany(g => g.GroupBy(y => y.SequenceNo)
.OrderByDescending(gg => gg.Key)
.First()
);

结果将是你想要的:

Cli No: 0000001, seq: 3 
Cli No: 0000001, seq: 3
Cli No: 0000002, seq: 2
Cli No: 0000002, seq: 2

关于c# - 获取每个项目的最大值通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404208/

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