Witam!
Chciałem zrobić bazę studentów, aczkolwiek mam problem z listą list.
Tutaj stworzyłem listę list:
List<List<string>> tablica = new List<List<string>>();
Pierwszy case ma za zadanie wyświetlania listy studentów, a drugi dodawanie ich:
case 1:
{
Console.Clear();
Console.WriteLine(tablica.Count);
Console.ReadLine();
if (tablica.Count > 0)
{
for (int i = 0; i < tablica.Count(); i++)
{
Console.WriteLine("Student number: " + (i+1));
for (int j = 0; j < 2; j++)
{
Console.WriteLine();
Console.Write(dane[j]);
System.Console.Write(tablica[i][j].ToString());
}
Console.Write("\n\n-----------------------------------------------\n\n");
}
}
else
{
Console.Clear();
Console.WriteLine("The list of students is empty! Please choose option number 2 to add students!");
}
break;
}
case 2:
{
dane[0] = "Name: ";
dane[1] = "Surname: ";
int how_many_students = 0;
Console.Clear();
Console.Write("How many students do you want to add? Please enter the number: ");
how_many_students = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < how_many_students; i++)
{
Console.Clear();
Console.Write("Student number: " + (i + 1) + "\n");
tablica.Add(new List<string>());
Console.Write("Enter name:");
tablica[i].Add(Console.ReadLine());
Console.Write("\nEnter surname:");
tablica[i].Add(Console.ReadLine());
}
break;
}
Podczas dodawania pierwszy raz, czyli: wybieram w menu opcję drugą i dodaje sobie 5-ciu studentów a potem wracam do menu i wybieram opcję pierwszą żeby wyświetlić ich jest wszystko okej. Lecz gdy wracam do menu i chcę dodać do tych 5-ciu studentów następnego/ych studentów to "niby" dodaje ich i zwiększa się tablica.Count(); lecz gdy chcę ich pokazać to wyświetla się tylko pierszych 5-ciu studentów. A gdy pętla próbuje dodać tych co za drugim razem dodałem wyskakuje następujący wyjątek:
Czyli wychodzi na to że indeks w pętli wychodzi poza zakres - tylko nie rozumiem dlaczego? Skoro w pętli jest:
i < tablica.Count();
Z góry dziękuje za odpowiedz!