Циклы очень распространены при программировании. Они используются для перебора списка или массива или выполнения до тех пор, пока не будет достигнуто определенное условие. Существуют разные виды циклов, и на этот раз я хочу показать вам все о foreach в C#.
Что такое цикл Foreach?
foreach проходит по списку или массиву, мы называем это итерируемым элементом. С помощью foreach вы назначаете переменную итерируемому элементу, который представляет один элемент в этом итерируемом элементе. Мы называем это элементом. В каждом цикле элемент является представлением элемента в итерируемом элементе. Он начинается с первого (индекс 0), а в следующем цикле это второй элемент (индекс 1) и так далее.
Foreach выглядит как цикл for, но цикл for имеет другие операторы и может выполняться с другим условием. Foreach всегда выглядит одинаково:
for(element in iterable-item) { }
foreach всегда начинается с foreach и состоит из двух элементов:
- Элемент представляет элемент из итерируемого элемента. Он должен быть объявлен как тот же тип.
- Итерируемый элемент — это объект, определенный в IEnumerable, что делает его списком. Подумайте, например, о словаре, списке, массиве и многом другом.
Некоторые примеры
Ниже приведены несколько примеров, показывающих, как работает foreach в C#.
Базовый пример
List<string> movieTitles = new() { "The Matrix", "Shrek", "Inception", "The Muppets", "Jaws" }; foreach (string title in movieTitles) { Console.WriteLine(title); }
В foreach я сначала объявляю тип и имя элемента. После этого я помещаю in, а затем итерируемый элемент, который в данном случае является строкой List‹. В теле foreach я могу использовать title (элемент), чтобы вывести название фильма на экран.
Его также можно использовать со списком объектов, как показано ниже:
List<Movie> movieTitles = new() { new() { Title = "The Matrix", Rating = 5 }, new() { Title = "Shrek", Rating = 2 }, new() { Title = "Inception", Rating = 5 }, new() { Title = "The Muppets", Rating = 3 }, new() { Title = "Jaws", Rating = 2 } }; foreach (Movie movie in movieTitles) {…