While a for loop may perform better, a foreach loop reads better and is less prone to off-by-one errors. That is why I have come to prefer them everywhere except _proven_ performance bottlenecks.
foreach (Student currentStudent in studentarraylist)
{
Console.WriteLine("Student {0} {1}", currentStudent.FirstName, currentStudent.LastName);
}
--- http://softwareonastring.com