Найти максимальное значение в массиве и отобразить элемент из другого массива
Помогите пожалуйста получить Фамилию, студента который прочитал больше всех книг. Вот что тут не так..?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp15
{
struct lib
{
public string SurName;
public string[] book;
public int count;
};
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите количество читателей");
int countStudent = Convert.ToInt32(Console.ReadLine());
List<string> list2 = new List<string>();
List<int> list = new List<int>();
lib[] lib1;
lib1 = new lib[countStudent];
for (int i = 0; i < countStudent; i++)
{
Console.WriteLine("Введите фамилию читателя №" + " " + (i+1));
lib1[i].SurName = Console.ReadLine();
list2.Add(lib1[i].SurName);
Console.WriteLine("Введите количество книг читателя №" + " " + (i + 1));
lib1[i].count = Convert.ToInt32(Console.ReadLine());
list.Add(lib1[i].count);
Console.WriteLine("Введите перечень книг читателя №" + " " + (i + 1));
var parts = Console.ReadLine().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
}
int max = list.Max();
int reader = list.IndexOf(max)+1;
var firstElement = list2[max];
Console.WriteLine(firstElement);
}
}
}
Ответы (1 шт):
Автор решения: Alex_Skvortsov
→ Ссылка
Замените
var firstElement = list2[max];
на
var firstElement = list2[list.IndexOf(max)];
И будет Вам счастье)