Ваш стиль кодирования разумен и распространен, но обратите внимание, насколько императив .Вы говорите «обойдите этот цикл, измените эту коллекцию, измените эту переменную», создавая машину, которая делает то, что вы хотите.Когда мне предоставляется выбор, я предпочитаю кодировать в декларативном стиле и позволить компилятору собрать машину для меня.Я был бы склонен написать вашу программу следующим образом:
var query = from i in Enumerable.Range(0, 100)
where some_condition
select new Student() { Id = ids[i], Name = names[i] };
var students = query.ToList();
Пусть компилятор беспокоится о циклах и переменных и еще много чего;Вы можете сосредоточиться на семантике, а не на механизмах.