В настоящее время вы создаете только одного студента, затем перезаписываете его свойства
Переместите это:
Students regstud = new Students("", "", "", 0);
в цикл, в котором вы фактически создаете нового студента:
if (selec == "1")
{
Students regstud = new Students("", "", "", 0);
...
}
Еще лучше было бы создать объект Student только после того, как все его свойства будут готовы:
if (selec == "1")
{
...
Console.WriteLine("Enter Name");
string name = Console.ReadLine();
Console.WriteLine("Enter Surname");
string surname = Console.ReadLine();
Console.WriteLine("Enter Age");
int age = Convert.ToInt32(Console.ReadLine());
Students regstud = new Students(name, surename, id, age);
...
}
Кроме того, ваш код выглядит для меня как комбинация каменного века и Футурамы: вы используетеархаичные циклические конструкции с отдельными индексными переменными, с одной стороны, и обобщениями и LINQ, с другой.Старайтесь придерживаться как можно более высоких абстракций - большинства переменных цикла, которых вы используете, можно избежать, если вы используете ForEach()
и т. Д. - это сделает ваш код намного чище и легче для чтения.