c# - 如何对文本文件中的数据进行排序并显示
问题描述
我目前正在大学视觉工作室中使用 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);
}
}
文本文件中的数据存储为名称分数
解决方案
文件内容
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());
}
免责声明 - 未经测试
推荐阅读
- python - 将数据从 api 保存到数据框
- python-3.x - 如何在 couchdb 视图上运行芒果查询?
- c# - 需要为动态创建的 datagridview 组合框列清除数据源
- javascript - 如何在Angular中打印带有子表行的表行?
- snowflake-cloud-data-platform - Snowflake 收集和存储哪些与我使用其服务相关的数据?
- c# - 更改实体类中的字段名称
- amazon-web-services - 如何根据用户 IP 启用 ALB 粘性
- ios - Windows 不支持 iOS 测试
- mongodb - Discord.js/Mongodb 如何更新所有数据库值
- python - 熊猫数据框明确找到NaN