Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Цикл foreach в C#: перебор массивов и коллекций легко

Цикл foreach в C#

Узнайте, как цикл foreach упрощает итерацию по массивам и коллекциям в C#, повышая читаемость и производительность.

В C# цикл foreach предлагает более чистую, выразительную альтернативу традиционному for при работе с массивами, списками и другими коллекциями. Он автоматически управляет индексацией, делая код проще для чтения и менее подверженным ошибкам.

Перед погружением повторите базовые темы:


Синтаксис цикла foreach

foreach (element in iterableItem) {
    // тело foreach
}

iterableItem может быть массивом, списком или любым типом, реализующим IEnumerable.


Как работает foreach

Цикл foreach в C#: перебор массивов и коллекций легко

Ключевое слово in на каждой итерации выбирает следующий элемент из iterableItem и присваивает его переменной element. Цикл выполняется один раз на элемент, поэтому число итераций равно числу элементов в коллекции.


Пример 1: Печать массива циклом for

using System;
namespace Loop {
    class ForLoop {
        public static void Main(string[] args) {
            char[] myArray = {'H','e','l','l','o'};
            for (int i = 0; i < myArray.Length; i++) {
                Console.WriteLine(myArray[i]);
            }
        }
    }
}

Пример 2: Печать массива циклом foreach

using System;
namespace Loop {
    class ForEachLoop {
        public static void Main(string[] args) {
            char[] myArray = {'H','e','l','l','o'};
            foreach (char ch in myArray) {
                Console.WriteLine(ch);
            }
        }
    }
}

Обе программы дают:

H e l l o

Версия с foreach короче, устраняет вычисление индексов и снижает риск ошибок на единицу (off-by-one).


Пример 3: Подсчет мужчин и женщин в массиве пола

Пример подсчитывает вхождения 'm' и 'f' в массиве.

using System;
namespace Loop {
    class GenderCount {
        public static void Main(string[] args) {
            char[] gender = {'m','f','m','m','m','f','f','m','m','f'};
            int male = 0, female = 0;
            foreach (char g in gender) {
                if (g == 'm') male++;
                else if (g == 'f') female++;
            }
            Console.WriteLine("Number of male = {0}", male);
            Console.WriteLine("Number of female = {0}", female);
        }
    }
}

Вывод:

Number of male = 6
Number of female = 4

Пример 4: Суммирование списка с foreach

Использование List<int> показывает, что foreach отлично работает с обобщенными коллекциями.

using System;
using System.Collections.Generic;
namespace Loop {
    class SumList {
        public static void Main(string[] args) {
            var numbers = new List<int>() { 5, -8, 3, 14, 9, 17, 0, 4 };
            int sum = 0;
            foreach (int number in numbers) {
                sum += number;
            }
            Console.WriteLine("Sum = {0}", sum);
            Console.ReadLine();
        }
    }
}

Результат:

Sum = 44

И для массивов, и для коллекций foreach дает более чистый, поддерживаемый код. Предпочитайте его, когда нужно только читать элементы и не требуется прямое манипулирование индексами.

Язык C

  1. Циклы while и do-while в C#: синтаксис, примеры и лучшие практики
  2. Цикл for в C#: синтаксис, поток выполнения и практические примеры
  3. Освоение цикла for в C++: пошаговое руководство
  4. Циклы while и do-while в C++: освоение повторений в коде
  5. Цикл for в C: синтаксис, механика и практические примеры
  6. Циклы while и do-while в C: практические примеры
  7. Мастерство цикла for в Python: Синтаксис, примеры и продвинутые паттерны
  8. Мастерство цикла while в Python: Синтаксис, примеры и лучшие практики
  9. Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
  10. Цикл do-while в C++: синтаксис, примеры и вложенные циклы