【发布时间】:2018-06-25 12:56:06
【问题描述】:
我有一个整数一个在另一个之下的文本,我想把它们放在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]);
【问题讨论】:
-
代码做了什么?你想让它做什么?
-
“但是出了点问题” - 或许您想更详细地描述问题?
-
此代码不采用列表的最大 int。我想显示最高分!
-
@dimath:看起来您的整个代码都可以替换为:
MessageBox.Show($"highest score {File.ReadAllLines("score.txt").Select(s => int.Parse(s)).Max()}");尽管将内容放在单独的行中以进行支持和调试当然很好。但是当您这样做时,该过程的一个重要部分是在调试器中逐步执行代码并观察正在发生的事情。不要只是运行整个事情并说“我没有得到预期的结果,我需要帮助。”调试。观察。查看每个操作在做什么。当您遇到错误的特定代码行时,请专注于此。 -
你缺少
{},因此只添加最后一个分数while (sr.Peek() >= 0){ k = int.Parse(sr.ReadLine()); scores.Add(k); }并使用.Max()方法,即scores.Max()