gpt4 book ai didi

c# - 对列表框中的项目进行排序时遇到问题

转载 作者:行者123 更新时间:2023-11-30 21:37:23 25 4
gpt4 key购买 nike

我正在使用 StreamReader 从文本文件中读取我的游戏的高分列表。然后我使用 .Sort() 对其进行排序

我将其转换为数组并将其传递到游戏中窗体上的列表框中。分数以字符串形式保存到文本文件中(score+"- "+username)

public frmHighScores()
{
InitializeComponent();

List<string> scores = new List<string>();
StreamReader inputFile = File.OpenText("High Scores.txt");
while (!inputFile.EndOfStream)
{
scores.Add(inputFile.ReadLine());
}
scores.Sort();
lstScores.Items.AddRange(scores.ToArray());
}

因为它是一个字符串,所以 Sort 方法只对乐谱中的第一个数字进行排序,我不确定如何纠正它。

Here is the image of the sorted list

我希望它如下所示

200
120
105
65

最佳答案

您可以使用字典来存储这些值(分数和用户名)。这将使您能够使用实数类型进行排序。您可以通过拆分字符串来构建此字典,如下所示:

public void frmHighScores()
{
// Pretend we read this from the file
List<string> fakeFileValues = new List<string>() { "20 steve", "100 john", "25 jane" };
Dictionary<int, string> scores = new Dictionary<int, string>();

foreach (string s in fakeFileValues)
{
// Better ways to do this, just expanding for clarity
string[] split = s.Split(' ');
scores.Add(int.Parse(split[0]), split[1]);
}

// You can then order by a real numeric value
scores.OrderBy(x => x.Key);
}

关于c# - 对列表框中的项目进行排序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294049/

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