Массивы — это одна из фундаментальных структур данных в программировании, которая позволяет хранить набор элементов одного типа в упорядоченном виде. В языке C# массивы широко используются для работы с коллекциями данных, будь то числа, строки или более сложные объекты. В шестнадцатом уроке нашего базового курса по C# мы разберём, как объявлять, инициализировать и использовать массивы, а также изучим многомерные массивы и массивы массивов (зубчатые массивы). Эти знания помогут вам эффективно обрабатывать большие объёмы данных в ваших программах.
Объявление и инициализация массивов
Массив в C# представляет собой набор однотипных данных. Для объявления массива указывается тип данных, за которым следуют квадратные скобки [], а затем имя массива:
тип_данных[] имя_массива;
Пример объявления массива целых чисел:
int[] numbers;
После объявления массиву нужно выделить память с помощью оператора new и указать его размер:
int[] nums = new int[4]; // Массив из 4 элементов типа int
Здесь создаётся массив nums с четырьмя элементами, изначально заполненными значением по умолчанию (0 для типа int). Число 4 называется длиной массива.
Массив можно инициализировать сразу при объявлении. Существует несколько способов:
int[] nums1 = new int[4] { 1, 2, 3, 5 };
int[] nums2 = new int[] { 1, 2, 3, 5 };
int[] nums3 = new[] { 1, 2, 3, 5 };
int[] nums4 = { 1, 2, 3, 5 };
Все эти варианты эквивалентны и создают массив из четырёх элементов: 1, 2, 3, 5.
Массивы могут хранить данные любого типа, например, строки:
string[] people = { "Tom", "Sam", "Bob" };
Работа с элементами массива
Для доступа к элементам массива используются индексы, начиная с 0 (первый элемент).
Например:
int[] numbers = { 1, 2, 3, 5 };
Console.WriteLine(numbers[3]); // Выведет: 5
int n = numbers[1]; // Сохраняем второй элемент (2)
Console.WriteLine(n); // Выведет: 2
Можно также изменить элемент массива по индексу:
numbers[1] = 505;
Console.WriteLine(numbers[1]); // Выведет: 505
Свойство Length
Каждый массив имеет свойство Length, которое возвращает количество элементов в массиве:
int[] numbers = { 1, 2, 3, 5 };
Console.WriteLine(numbers.Length); // Выведет: 4
Это свойство полезно при работе с циклами для перебора элементов массива.
Перебор массивов
Для перебора элементов массива удобно использовать циклы foreach или for.
Перебор с помощью foreach:
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
Цикл foreach автоматически проходит по всем элементам массива, присваивая их переменной i.
Перебор с помощью for:
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
Цикл for даёт больше контроля, так как позволяет работать с индексами, что полезно для изменения элементов или выполнения других операций.
Многомерные массивы
Многомерные массивы используются для представления данных в виде таблицы или более сложных структур. Двухмерный массив, например, можно представить как таблицу с рядами и столбцами.
Синтаксис:
тип_данных[,] имя_массива;
Пример двухмерного массива:
int[,] nums = { { 0, 1, 2 }, { 3, 4, 5 } };
Здесь массив nums имеет 2 строки и 3 столбца. Доступ к элементу осуществляется с помощью двух индексов:
Console.WriteLine(nums[1, 2]); // Выведет: 5
Способы инициализации двухмерного массива:
int[,] nums1 = new int[2, 3];
int[,] nums2 = new int[2, 3] { { 0, 1, 2 }, { 3, 4, 5 } };
int[,] nums3 = new int[,] { { 0, 1, 2 }, { 3, 4, 5 } };
int[,] nums4 = { { 0, 1, 2 }, { 3, 4, 5 } };
Можно создавать массивы с большим количеством измерений, например, трёхмерные:
int[,,] nums3 = new int[2, 3, 4];
Однако на практике чаще используются одномерные и двухмерные массивы.
Массивы массивов (зубчатые массивы)
Зубчатый массив — это массив, элементы которого сами являются массивами, причём их длина может различаться.
Синтаксис:
тип_данных[][] имя_массива;
Пример:
int[][] nums = new int[3][];
nums[0] = new int[2] { 1, 2 };
nums[1] = new int[3] { 1, 2, 3 };
nums[2] = new int[5] { 1, 2, 3, 4, 5 };
Альтернативный способ инициализации:
int[][] numbers = {
new int[] { 1, 2 },
new int[] { 1, 2, 3 },
new int[] { 1, 2, 3, 4, 5 }
};
Для перебора зубчатого массива используются вложенные циклы:
int[][] numbers = new int[3][];
numbers[0] = new int[] { 1, 2 };
numbers[1] = new int[] { 1, 2, 3 };
numbers[2] = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
for (int j = 0; j < numbers[i].Length; j++)
{
Console.Write($"{numbers[i][j]}\t");
}
Console.WriteLine();
}
Этот код выведет элементы зубчатого массива построчно, с учётом разной длины подмассивов.
Все виды массивов в языке программирования C# (нажми)
Массивы в C# — это мощный инструмент для работы с наборами данных. Они позволяют хранить и обрабатывать элементы одного типа, будь то простые одномерные списки, двумерные таблицы или сложные зубчатые массивы. Понимание того, как объявлять, инициализировать и перебирать массивы, а также как использовать их свойства, такие как Length, открывает широкие возможности для создания эффективных программ. В следующем уроке мы продолжим изучение C# и познакомимся с другими важными концепциями языка. Практикуйтесь с примерами, экспериментируйте с различными типами массивов и задавайте вопросы, если что-то осталось непонятным!
0 Комментарий(я)
Зарегистрируйтесь чтобы оставить комментарий