从列表中的txt中获取数字,然后对列表进行排序C#

时间:2018-06-25 12:56:07

标签: c# list sorting

我有一个文本,该文本的整数比另一个整数小,我想将它们放在List<int>中。

然后我想对List<int>进行排序并采用第一个元素。

我尝试了这段代码,但是出了点问题,并且没有显示最高的分数。

int k;
List<int> scores = new List<int>();
using (var sr = new StreamReader("score.txt"))
{
    while (sr.Peek() >= 0)
        k = int.Parse(sr.ReadLine());
        scores.Add(k);
}
scores.Sort();
MessageBox.Show("highest score " + scores[0]);

1 个答案:

答案 0 :(得分:3)

您在while循环中缺少括号。

int k;
List<int> scores = new List<int>();

using (var sr = new StreamReader("score.txt"))
{
    while (sr.Peek() >= 0)
    {
        k = int.Parse(sr.ReadLine());
        scores.Add(k);
    }
}
scores.Sort();
MessageBox.Show("highest score " + scores[0]);

虽然单独缩进是如何在Python之类的语言中将某些内容移入和移出while循环,但是C#忽略空格,因此您键入的内容实际上应该缩进为:

while (sr.Peek() >= 0)
    k = int.Parse(sr.ReadLine());
scores.Add(k);

例如,k = int.Parse(sr.ReadLine());是循环的一部分,而scores.Add(k);仅执行一次。