读取txt文件并对其进行排序
本文关键字:排序 txt 文件 读取 | 更新日期: 2023-09-27 18:20:02
喜欢标题的txt文件,就像这个
等级为0~100
示例:
名称,等级
名称,等级
名称,等级
我必须用等级来分类
解决问题的方法是将它们拆分为数组,然后进行排序吗?
我已经将文件加载到像这个一样的字符串中
char[] spli = { ' ', ',', ''t' };
string line;
string[] sline;
StreamReader file = new StreamReader(textBox1.Text,Encoding.Default);
line = file.ReadToEnd();
sline = line.Split(spli);
foreach (string item in sline)
{
listBox1.Items.Add(item);
}
plz
当您从文本文件中读取数据并对其进行解析时,请始终进行验证。您永远不会知道文件中的数据。查看我的代码。
class MyListUser
{
public string Name;
public int Grades;
}
private List<MyListUser> ReadUserFile()
{
List<MyListUser> lstUser;
string[] sMyData = File.ReadAllLines("Myfile.txt");
if (sMyData != null)
{
MyListUser oTmp;
string[] sTmp;
lstUser = new List<MyListUser>();
for (int i = 0; i < sMyData.GetLength(0); i++)
{
sTmp = Regex.Split(sMyData[i], ",");
//need some validation
if (sTmp != null && sTmp.GetLength(0) > 1)
{
oTmp = new MyListUser();
oTmp.Name = sTmp[0];
int.TryParse(sTmp[1], out oTmp.Grades );
lstUser.Add(oTmp);
}
}
return lstUser.OrderBy(o => o.Grades).ToList();
}
return null;
}
下面的代码假设文本文件中的grades
只是一个数字的一个字符串表示。您可以使用LINQ对其进行排序——首先在,
处拆分每一行,然后解析数字的字符串表示,OrderBy
it:
var sorted = File.ReadLines(textBox1.Text)
.OrderBy(line => Int32.Parse(line.Split(',')[1]))
.ToList();
如果grades
是double
:
var sorted = File.ReadLines(textBox1.Text)
.OrderBy(line => Double.Parse(line.Split(',')[1], CultureInfo.InvariantCulture))
.ToList();