gpt4 book ai didi

c# - 将一个值与排序字典中的下一个值进行比较

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

我有一个排序字典,其中名称作为键,标记作为值。

Dictionary<string,int> diM = new Dictionary<string,int>();

另一个字典,用于存储各个学生所用的时间。

Dictionary<string,int> diT = new Dictionary<string,int>();

现在如果两个学生的分数相同,则根据所用时间排名。

var marks = from pair in diM
orderby pair.Value descending
select pair;
int j=0;

foreach (KeyValuePair<string, int> pair in marks)
{
j++;
Console.WriteLine("{0} {1}",j, pair.Key);
}

现在如果一个学生的分数与下一个学生的分数相等(作为排序的字典),那么应该输出时间较少的学生。

最佳答案

首先 我建议不要为此任务使用字典。创建一个具有名称、标记和时间属性的类。像这样的东西:

public class TestResult
{
public string Name { get; set; }
public int Grade { get; set; }
public TimeSpan Time { get; set; }
}

然后持有该类型的列表。每当您有两个单独的集合并且您需要以某种方式保持同步时 - 怀疑设计中可能存在问题。


至于实际问题,使用Linq将两个字典通过key连接起来。完成后,您可以按标记然后按时间排序结果:

var result = from mark in diM
join time in diT on mark.Key equals time.Key
orderby mark.Value descending, time.Value
select new { Name = mark.Key, Grade = mark.Value, Time = time.Value };

关于c# - 将一个值与排序字典中的下一个值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236260/

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