string[] Entry = *File path*
var orderedEntries = Entry.OrderBy(x => int.Parse(x.Split(" ")[1]));
foreach (var score in orderedEntries)
{
Console.WriteLine(Entry);
}
我有一个以下格式的文本文件: 名称高分(名称是输入的字符串,高分是计算得出的整数) 我想发生的是,该程序输出所有名称和高分,并按它们的分数排序,因此首先输出最高分。我在类似问题的答案中找到了此代码,但是当我运行它时,它输出的是“ System.String []”,而不是实际的条目。
很抱歉,如果这只是一点重复,在这种情况下找不到任何可以帮助我的东西。
答案 0 :(得分:2)
我看不到任何代码来读取文件的内容。我会尝试类似的
string[] entries = File.ReadAllLines("filename.txt");
var orderedEntries = entries.OrderBy(x => int.Parse(x.Split(" ")[1]));
foreach (var entry in orderedEntries)
{
Console.WriteLine(entry);
}
如果分数是每一行的第二个单词,则此方法有效。如果是第一个,则需要使用int.Parse(x.Split(" ")[0]
。
答案 1 :(得分:0)
尝试一下:
var orderedEntries = Entry.Select(x => new {name = x.Split(' ')[0], highscore = int.Prase(x.Split(' ')[1])}).OrderByDescending(x => x.highscore));
foreach (var entry in orderedEntries)
{
Console.WriteLine($"name={entry.name} highscore={entry.highscore}");
}