Моя домашняя работа - написать код из двух основных частей: одна - создать текстовый файл с именами и номерами, а другая - прочитать тот же текстовый файл и распечатать наибольшее число из файла.
Это часть кода, которая создает текстовый файл (с этим у меня нет проблем, он работает просто отлично),
класс:
class Person
{
public string Name;
public string Age;
}
Основное:
Person a = new Person();
Person b = new Person();
Person c = new Person();
a.Name = "Abel";
a.Age = "20";
b.Name = "Bob";
b.Age = "22";
c.Name = "Cain";
c.Age = "25";
string[] People = { a.Name, a.Age, b.Name, b.Age, c.Name, c.Age };
using (StreamWriter write = new StreamWriter(@"C:\Users\A\Desktop\file check\test.txt"))
{
for (int i = 0; i < People.Length; i++)
{
write.WriteLine(People[i]);
}
}
Текстовый файл очень прост и выглядит так:
Abel
20
Bob
22
Cain
25
Эта часть работает нормально.
Часть, с которой у меня возникли проблемы, это часть, где я должен прочитать файл и напечатать наибольшее число, которое выглядит так:
string PeopleCheck = @"C:\Users\A\Desktop\file check\test.txt";
using (StreamReader read = new StreamReader(PeopleCheck))
{
while (true)
{
string FindMax = read.ReadLine();
if (FindMax == null)
{
break;
}
int test;
if(Int32.TryParse(FindMax, out test))
{
// Console.WriteLine(FindMax); --> this will print all numbers, one number in each line
int[] numbers = FindMax.Split(' ').Select(n => Convert.ToInt32(n)).ToArray();
Console.WriteLine("the highest number is {0}", numbers.Max());
}
}
}
}
Я использовал этот пост: Преобразование строки в массив int с использованием LINQ
, чтобы преобразовать строку в массив чисел. Я думал, что numbers.Max () выведет наибольшее число, но вывод выглядит так:
the highest number is 20
the highest number is 22
the highest number is 25
Press any key to continue . . .
Если кто-нибудь знает, как это исправить, чтобы на выходе было одно число, я буду очень признателен, заранее спасибо всем, кто пытается мне помочь.