Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对文本文件中的数据进行排序并显示_C#_Sorting - Fatal编程技术网

C# 如何对文本文件中的数据进行排序并显示

C# 如何对文本文件中的数据进行排序并显示,c#,sorting,C#,Sorting,我目前正在大学的visual Studio中使用c#制作一个简单的游戏,我一直在将玩家姓名和分数保存到一个文本文件中,我想做的是按最高分数对该文本文件排序,然后再次保存 我有一个基本数组,可以在列表框中显示结果,并按名称排序,但我想按分数排序,如果有人能引导我,我会很感激的 private void scoreArray() { string[]fileName=File.ReadAllLines(@“E:\College Year 3\Computer Programming 2\Minefi

我目前正在大学的visual Studio中使用c#制作一个简单的游戏,我一直在将玩家姓名和分数保存到一个文本文件中,我想做的是按最高分数对该文本文件排序,然后再次保存

我有一个基本数组,可以在列表框中显示结果,并按名称排序,但我想按分数排序,如果有人能引导我,我会很感激的

private void scoreArray()
{
string[]fileName=File.ReadAllLines(@“E:\College Year 3\Computer Programming 2\Minefield\leadboard.txt”);
Sort(文件名);
foreach(文件名中的字符串分数)
{
列表框1.Items.Add(分数);
}
}
文本文件中的数据存储为
姓名分数一种方法是使用
排序(数组、IComparer)
(有关详细信息,请参阅)

在比较函数中,您将解析出分数并进行数字比较

更好的方法是将加载的数据解析为一组结构(带有名称和分数)。

文件内容

James,20
Jake,10
John,1000
代码


//对象将数据移动到文件中/从文件中移动数据
公共类文件项
{
公共字符串名称{get;set;}
公共整数点{get;set;}
公共重写字符串ToString()
{
返回名称+“,”+点数;
}
}
//读文件
string[]content=File.ReadAllLines(路径);
//解析它并存储在对象列表中
var sortList=新列表();
foreach(内容中的字符串行)
{
string[]namePoints=string.Split(“,”,StringSplitOptions.RemoveEmptyEntries);
var item=newfileitem(){Name=namePoints[0],Points=int.Parse(namePoints[1]);
分类表添加(项目);
}
//排序并写入文件
使用(StreamWriter输出文件=新StreamWriter(路径))
{
foreach(sortList.OrderBy中的FileItem(fi=>fi.Points);)
outputFile.WriteLine(fileItem.ToString());
}

免责声明-未经测试

您正在按文本排序,数字不会按预期排序。当文本为101001000,202002000时,顺序为1,101001000,2,202002000。一种更好的方法是将数据读入一个对象,该对象对字符串中的不同值具有不同的属性,然后对这些值的数组进行排序。请参阅复制。嘿,现在只是尝试一下,但是没有变量?我正在使用c#windows窗体app@adrianrowland您使用的.net框架是什么
var
不是数据类型,而是关键字。在c#3.0中引入—很久以前
var item=new FileItem
FileItem item=new FileItem