Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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# 从列表中的txt中获取数字,然后对列表C进行排序_C#_List_Sorting - Fatal编程技术网

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

C# 从列表中的txt中获取数字,然后对列表C进行排序,c#,list,sorting,C#,List,Sorting,我有一个整数在另一个下面的文本,我想把它们放在一个列表中 然后我想对列表进行排序,并获取第一个元素 我尝试了这段代码,但出现了一些问题,没有显示最高分数 int k; List<int> scores = new List<int>(); using (var sr = new StreamReader("score.txt")) { while (sr.Peek() >= 0) k = int.Parse(sr.ReadLine());

我有一个整数在另一个下面的文本,我想把它们放在一个列表中

然后我想对列表进行排序,并获取第一个元素

我尝试了这段代码,但出现了一些问题,没有显示最高分数

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]);
您缺少while循环上的大括号。
如中所示,k=int.Parsesr.ReadLine;是循环的一部分,而scores.Addk;只执行一次。

代码做了什么?你想让它做什么呢?但是出了点问题-也许你想更详细地描述一下这个问题?这段代码不取列表中的最大整数。我想显示最高分数@dimath:看起来整个代码可以替换为:MessageBox.Show$highest score{File.ReadAllLinesscore.txt.Selects=>int.Parses.Max};不过,为了支持和调试,最好将事情分开进行。但是,当您这样做时,这个过程的一个重要部分是逐步完成调试器中的代码并观察发生了什么。不要只说我没有得到我期望的结果,我需要帮助。调试。看到查看每个操作正在执行的操作。当您遇到错误的特定代码行时,请关注它。您缺少{},因此只添加最后一个分数,而sr.Peek>=0{k=int.Parsesr.ReadLine;scores.Addk;}并使用.Max方法,即scores.Max。。从中吸取的教训是总是添加大括号。你应该投票以打字错误结束,IMHO不会增加太多价值。谢谢大家,现在代码正在运行properly@dimath很高兴听到这个消息。如果你得到了一个有用的答案,你应该点击这个答案左上角的向上箭头三角形,向上投票,然后点击向下箭头下方的复选标记,将其标记为正确答案,以帮助未来可能有同样问题的人
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]);
while (sr.Peek() >= 0)
    k = int.Parse(sr.ReadLine());
scores.Add(k);