gpt4 book ai didi

c# - 使用一个列表中的最大值对第二个列表进行排序。

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

有两个列表。

我有一个学生名单,是这样制作的

List<Student> students = new List<Student>();

列表中每个学生对象的属性是 firstName、LastName 和 Fees[]。

费用是一个数组,其中包含列表中每个学生的一组费用。

我做了第二个这样的列表:

List<double>  totals = new List<double>();

我遍历学生名单并计算每个学生的费用。然后我将每个学生的总计添加到 totals 列表(我的第二个列表)。

现在我需要对 students 列表进行排序,使应付费用总额最高的出现在开头。换句话说,我需要使用 totals 中的最高值对 students 进行排序。我可以像这样从 totals 中获得最高值:

double highestTotalAmountDue = totals.Max();

如何使用此 highestTotalAmountDue 值对 students 列表进行排序,以便总费用最高的学生位于列表的开头?

澄清一下,我只需要将费用总额最高的学生添加到列表顶部。其余的可以保持相同的顺序。

到目前为止,这是我的代码:

List<double> totals = new List<double>();
double tempTotal = 0;

Lis<Student> students = new Lis<Student>();

// populate the students list

foreach (var item in students)
{
for (var i = 0; i < resultSet[0].Fees.Length; i++)
{
tempTotal += item.Fees[i].Amount;
}

totals.Add(tempTotal);
tempTotal = 0;
}

double highestTotalAmountDue = totals.Max();

// now what to do to sort the students list by highestTotalAmountDue to put the student with the highest fee due at the top????

请帮忙。提前致谢。

最佳答案

如果我没记错的话:

var orderedStudents = students
.OrderByDescending(s => s.Fees.Sum(f => f.Amount) == highestTotalAmountDue);

这会将 max-fee-amount 学生放在顶部,其他学生将保持无序。

关于c# - 使用一个列表中的最大值对第二个列表进行排序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170050/

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