3 различных способа циклического просмотра списка на C#
List<T> являются одной из наиболее используемых структур данных в языке C#.
Итерация по списку List<T> и выполнение некоторых операций над элементами списка - довольно частое явление в наших повседневных проектах.
Чтобы выполнить цикл по списку в C#, мы можем использовать 3 различных способа.
- С помощью оператора C# foreach.
- Используя метод C# List.ForEach.
- Использование простого цикла for.
Давайте рассмотрим пример для дальнейшего понимания.
Сначала мы создадим простой список на языке C#.
List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
Теперь мы рассмотрим различные способы зацикливания списка C#.
Использование оператора C# foreach 
Использование оператора foreach для зацикливания списка в C# является широко распространенным методом.
В дальнейшем мы можем выполнять любые операции над элементами списка.
В приведенном ниже примере я создал список строк.
Затем зациклил этот список с помощью foreach и вывел элементы списка на консоль.
///Method to Loop C# list
void loopList()
{
   List<string> languages = new List<string>() { "C#","Asp.Net","DotNet Core"};
   
   foreach (string lang in languages)
   {
        Console.WriteLine(lang);
   }
}
Теперь мы создадим список объектов и зациклим их с помощью оператора foreach.
Определили класс Person и создали список с двумя элементами person.
List<Person> persons = new List<Person>() 
{ 
      new Person() { Id = 1, Name="Arun" },
      new Person() { Id = 2, Name="Kumar"} 
};
Теперь мы можем использовать оператор foreach для циклического просмотра списка объектов.
void loopListOfObjects(List<Persons> persons){
 foreach(var person in persons)
    {
        Console.WriteLine(person.Name);            
        Console.WriteLine(person.Id);
    }
}
Используя метод C# List.ForEach 
List<T>.ForEach метод выполняет заданный action над каждым элементом списка List.
Он принимает Action<T> параметр делегата.
В следующем примере выполняется цикл по списку объектов с использованием Action<T> делегата.
persons.ForEach((person) =>
    {
        Console.WriteLine(person.Name);
        Console.WriteLine(person.Id);
    });
Использование оператора for 
Мы можем использовать унаследованный оператор for для циклического просмотра списка C#, если вы хотите выполнить какое-либо действие над элементами списка на основе индекса.
В противном случае используйте foreach или List<T>.ForEach() методы.
for(var i=0;i<persons.Count;i++)
    {
        Console.WriteLine(persons[i].Name);
        Console.WriteLine(persons[i].Id);
    }
Резюме
В этом уроке мы узнали, как выполнить цикл по списку в C#, используя операторы foreach, List<T.ForEach и for.