首页 > 解决方案 > 如何对文本文件中的数据进行排序并显示

问题描述

我目前正在大学视觉工作室中使用 c# 制作一个简单的游戏,atm 我一直在将玩家姓名和分数保存到一个文本文件中,我想要做的是按最高分对该文本文件进行排序并保存它再次

我有一个基本数组可以在列表框中显示结果并按名称排序,但我想按分数对其进行排序,如果有人可以引导我走向正确的方向,不胜感激

private void scoreArray()

{

string[] fileName = File.ReadAllLines(@"E:\College Year 3\Computer Programming 2\Minefield\Leaderboard.txt");

Array.Sort(fileName);

foreach (string score in fileName)

{

listBox1.Items.Add(score);

}

}

文本文件中的数据存储为名称分数

标签: c#sorting

解决方案


文件内容

James,20
Jake,10
John,1000

代码


// object to move data to/from file
public class FileItem
{
    public string Name {get; set;}
    public int Points {get; set;}
    public override string ToString()
    {
        return Name + "," + Points;
    }
}

// read the file
string[] content = File.ReadAllLines(path);
// parse it and store in list of objects
var sortList = new List<FileItem>();
foreach (string line in content)
{
    string[] namePoints = string.Split(",", StringSplitOptions.RemoveEmptyEntries);
    var item = new FileItem() {Name = namePoints[0], Points = int.Parse(namePoints[1])};
    sortList.Add(item);
}

// Sort and write to file
using (StreamWriter outFile= new StreamWriter(path))
{
    foreach (FileItem fileItem in sortList.OrderBy(fi => fi.Points);)
        outputFile.WriteLine(fileItem.ToString());
}

免责声明 - 未经测试


推荐阅读