gpt4 book ai didi

C# 按分数对行进行排序

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

我有一个名为 Player 的类,它具有名称和分数属性,在每场比赛之后,它们都用方法 File.AppendAllText(path, content+Environment.NewLine); 写入文件中.现在我必须在单击标签“分数”并加载新表单时将它们添加到列表框..但我想使用我的类播放器,并将项目添加到列表或作为播放器的东西,而不仅仅是从文件加载它们。 ..我用了SortedList 如下图...

    SortedList<int, Player> topList = new SortedList<int, Player>();

private void Scores_Load(object sender, EventArgs e)
{
topList.Clear();
string filename = "highscores.txt";
using (StreamReader sr = File.OpenText(filename))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] s = line.Split(';');
string name = s[0];
int score = int.Parse(s[1]);
Player newPlayer = new Player(name, score);
if (!topList.ContainsKey(score))
topList.Add(score, newPlayer);
}
}

Output();
}
private void Output()
{
lstScores.Items.Clear();
int rank = 1;
foreach (int k in topList.Keys.Reverse())
{
if (rank < 10)//top 9
{
Player temp = (Player)topList[k];
lstScores.Items.Add(" " + rank.ToString() + "\t" + temp.ToString());//override of method ToString(), so it returns in format Name+"\t"+Score;
}
rank++;
}
}

现在这是可以接受的,但这里的问题是我不能有两个相同的键,在这种情况下键是分数...所以我想知道如何修改它以便我可以有两个或更多相同的分数?....也许我应该使用List<> ,但我不知道如何按分数对该列表进行排序,因为我在文件的同一行(名称+分数)中有 string + int?

最佳答案

您可以使用列表:

List<Player> players = new List<Player>();
players.Add(new Player(name, score));

并按分数排序:

var sorted = players.OrderByDescending(p => p.Score).ToList();

关于C# 按分数对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432718/

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