C# для начинающих: foreach и динамические массивы

Урок посвящен циклу foreach и работе с динамическими массивами в C#. Рассмотрим использование foreach для перебора элементов массивов и возможности динамических массивов, реализованных с помощью Generics.

Цикл foreach для работы с массивами

Цикл foreach – удобный способ перебора элементов массивов в C#. В отличие от цикла for, он упрощает обработку, исключая работу с индексами.

Пример с одномерным массивом типа short:

short[] nam = {10, 20, 30, 40, 50};

foreach (short l in nam)
{
    Console.WriteLine(l); 
}

Создается массив nam, элементы которого перебираются с помощью foreach. Переменная l последовательно принимает значения элементов массива.

foreach и многомерные массивы

foreach эффективно работает с многомерными массивами. Пример с двумерным массивом:

short[,] nam2 = {
    {10, 20, 30},
    {40, 50, 60},
    {70, 80, 90}
};

foreach (short l in nam2)
{
    Console.WriteLine(l);
}

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

Динамические массивы и List<T>

В отличие от обычных массивов, динамические массивы позволяют изменять количество элементов во время выполнения. Добавление или удаление элементов не вызывает ошибок, связанных с фиксированным размером. Однако, они потребляют больше ресурсов, чем статические массивы. При известном заранее размере массива лучше использовать обычный массив.

Для работы с динамическими массивами в C# используется класс List<T> из библиотеки System.Collections.Generic.

Реализация динамического массива

Для создания динамического массива (списка) чисел типа int:

using System.Collections.Generic;

List<int> namList = new List<int>() { 10, 20, 30 }; 
namList.Add(40);
namList.Add(100);
namList.Add(5);

foreach (int element in namList)
{
    Console.WriteLine(element);
}

Создан список namList, добавлены элементы и перебраны с помощью foreach.

Методы класса List<T>

Класс List<T> предоставляет методы для работы с динамическими массивами:

  • Add(T item): Добавление элемента.
  • Remove(T item): Удаление элемента по значению.
  • Sort(): Сортировка элементов по возрастанию.
  • Reverse(): Разворот списка.
  • Clear(): Очистка списка.
  • Contains(T item): Проверка наличия элемента.
  • IndexOf(T item): Поиск индекса элемента.

Пример использования методов:

namList.Remove(100); // Удаление элемента со значением 100
namList.Sort();      // Сортировка
namList.Reverse();   // Разворот

В уроке рассмотрен цикл foreach для перебора элементов массивов (одномерных и многомерных) и динамические массивы, реализованные с помощью класса List<T> и основные методы работы с ним. Выбор между обычными и динамическими массивами зависит от требований программы. При известном заранее размере массива предпочтительнее использовать обычный массив.

Что будем искать? Например,программа