对文本文件进行排序,其中每一行都是一个名称,后跟一个分数

Mat*_*gan 2 c# xna

我打算为XNA游戏制作一个记分牌但是我在弄清楚如何制作方面遇到了一些麻烦.完成关卡后,玩家会在出现提示时输入他的名字.他的名字和时间将在文本文件中记录,如下所示:

sam 90
james 64
matthew 100
Run Code Online (Sandbox Code Playgroud)

我试图找出一种方法,只按时间对数据进行排序,而不考虑名称.

我还没有开始编码,但如果有人能给我任何想法,我将不胜感激.

And*_*rpi 6

首先,使用读取文本文件,File.ReadAllLines(...)以获得字符串数组.然后迭代数组并将每个字符串拆分为空白空间(假设用户不能在其名称中输入空格)并在第二个元素上排序,这应该是分数.您必须将其转换为字符串int.Parse(...)才能正确排序.

string[] scores = File.ReadAllLines("scorefile.txt");
var orderedScores = scores.OrderByDescending(x => int.Parse(x.Split(' ')[1]));

foreach (var score in orderedScores)
{
    Console.WriteLine(score);
}
//outputs:
//matthew 100
//sam 90
//james 64
Run Code Online (Sandbox Code Playgroud)

我建议使用分号之类的东西来分隔名称和分数而不是空格,因为这样可以更容易处理用户被允许在其名称中输入空格的情况.