如何在同一行查询的两个不同列上一起使用 Min 和 Max 来获取列表中的对象 C#

问题描述 投票:0回答:1

我有一个清单:

身份证 休息 金额
A 10 100
B 08 100
C 03 100
D 06 100
E 07 200
F 04 200
G 09 300
H 06 400
08 500

我已经尝试过了,但没有成功:

var t = Mylist
    .GroupBy(f => new { f.ID,f.REST,f.AMOUNT })
    .Select(grp => new 
    { 
        id = grp.Key.ID, 
        Max = grp.Max(g => g.AMOUNT), 
        Min = grp.Min(g => g.REST) 
    })
    .ToList();

我也试过了,没成功:

var t = Mylist.OrderByDescending(e => e.REST).ThenBy(e => e.AMOUNT).First();

我需要同一行具有最小 REST 和最大 AMOUNT 的行,例如:

身份证 休息 金额
F 04 200
c# list max min simultaneous
1个回答
0
投票

我假设您想要最小休息,并且在具有相同最小休息的任何行中,最大数量。请编辑您的问题以澄清您的要求。如果我的假设是正确的,那么你的顺序就错了:

var t = Mylist.OrderBy(e => e.REST).ThenByDescending(e => e.AMOUNT).First();

您需要升序的休息顺序,以便第一行具有最小值;金额则相反。

© www.soinside.com 2019 - 2024. All rights reserved.