以升序C#在文本文件中输出分数

时间:2018-12-06 13:51:59

标签: c#

string[] Entry = *File path*
                        var orderedEntries = Entry.OrderBy(x => int.Parse(x.Split(" ")[1]));
                        foreach (var score in orderedEntries)
                        {
                            Console.WriteLine(Entry);
                        }

我有一个以下格式的文本文件: 名称高分(名称是输入的字符串,高分是计算得出的整数) 我想发生的是,该程序输出所有名称和高分,并按它们的分数排序,因此首先输出最高分。我在类似问题的答案中找到了此代码,但是当我运行它时,它输出的是“ System.String []”,而不是实际的条目。

很抱歉,如果这只是一点重复,在这种情况下找不到任何可以帮助我的东西。

2 个答案:

答案 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}");
}