Урок посвящен циклу 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> и основные методы работы с ним. Выбор между обычными и динамическими массивами зависит от требований программы. При известном заранее размере массива предпочтительнее использовать обычный массив.