РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО C#: МАССИВЫ

Здравствуйте, будущий программист! Сегодня мы отправимся в увлекательное путешествие в мир массивов C#. Представьте массивы как магическую коробку, которая может содержать несколько элементов одного типа. Это как коробка с вашими любимыми конфетами, но вместо конфет мы храним данные!

C# - Arrays

Что такое массивы?

Прежде чем углубиться в детали, давайте разберемся, что такое массивы. Массив — это структура данных, которая позволяет вам хранить несколько значений одного типа в одной переменной. Представьте, что вы учитель (как я!), и вам нужно сохранить оценки 30 студентов. Вместо того чтобы создавать 30 отдельных переменных, вы можете использовать один массив для хранения всех этих оценок. Замечательно, правда?

Объявление массивов

Давайте начнем с азов: как объявить массив. Синтаксис довольно простой:

dataType[] arrayName;

Например, если мы хотим объявить массив целых чисел, мы напишем:

int[] grades;

Эта строка tells C# о том, что мы создаем массив под названием grades, который будет содержать целые значения. Но помните, на этом этапе мы не указали, сколько оценок мы хотим сохранить и какие это оценки.

Инициализация массива

Теперь, когда мы объявили наш массив, давайте дадим ему размер. Мы можем сделать это несколькими способами:

Метод 1: Указание размера

int[] grades = new int[5];

Это создает массив, который может содержать 5 целых значений. Изначально все элементы будут установлены в значение по умолчанию для целых чисел, которое равно 0.

Метод 2: Инициализация значениями

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Здесь мы создаем массив и сразу же наполняем его значениями. C# достаточно умён, чтобы понять, что мы хотим массив из 5 элементов на основе предоставленных нами значений.

Присваивание значений массиву

Допустим, мы создали наш массив с использованием метода 1, и теперь мы хотим добавить некоторые оценки. Мы можем сделать это, обращаясь к каждому элементу массива с использованием его индекса:

grades[0] = 85;  // Первая оценка
grades[1] = 92;  // Вторая оценка
grades[2] = 78;  // Третья оценка
grades[3] = 95;  // Четвертая оценка
grades[4] = 88;  // Пятая оценка

Remember, индексы массивов в C# (и большинстве других языков программирования) начинаются с 0, а не с 1. Таким образом, первый элемент находится в индексе 0, второй в индексе 1 и так далее.

Доступ к элементам массива

Чтобы получить доступ к элементам в массиве, мы используем ту же квадратную скобку:

int firstGrade = grades[0];  // Это даст нам 85
int thirdGrade = grades[2];  // Это даст нам 78

Вот небольшая программа, которая объединяет все это:

int[] grades = new int[5];

grades[0] = 85;
grades[1] = 92;
grades[2] = 78;
grades[3] = 95;
grades[4] = 88;

Console.WriteLine("The grades are:");
for (int i = 0; i < grades.Length; i++)
{
Console.WriteLine($"Student {i + 1}: {grades[i]}");
}

Эта программа выведет:

The grades are:
Student 1: 85
Student 2: 92
Student 3: 78
Student 4: 95
Student 5: 88

Использование цикла foreach

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

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Console.WriteLine("The grades are:");
int studentNumber = 1;
foreach (int grade in grades)
{
Console.WriteLine($"Student {studentNumber}: {grade}");
studentNumber++;
}

Цикл foreach автоматически итерируется через каждый элемент в массиве, присваивая его переменной grade в каждой итерации. Это более чистый и читаемый способ прохождения всех элементов массива.

Много_dimensional Arrays

До сих пор мы работали с одномерными массивами. Но что, если нам нужно создать grade book для нескольких предметов? Вот где на помощь приходят многомерные массивы. Давайте создадим двухмерный массив для хранения оценок 3 студентов по 4 предметам:

int[,] gradeBook = new int[3, 4]
{
{ 85, 92, 78, 95 },
{ 80, 89, 93, 87 },
{ 76, 88, 91, 84 }
};

Console.WriteLine("Grade Book:");
for (int i = 0; i < 3; i++)
{
Console.Write($"Student {i + 1}: ");
for (int j = 0; j < 4; j++)
{
Console.Write($"{gradeBook[i, j]} ");
}
Console.WriteLine();
}

Это выведет:

Grade Book:
Student 1: 85 92 78 95
Student 2: 80 89 93 87
Student 3: 76 88 91 84

Методы массивов

C# предоставляет несколько полезных методов для работы с массивами. Вот некоторые из самых.common:

Метод Описание Пример
Array.Sort() Сортирует элементы в массиве Array.Sort(grades);
Array.Reverse() Обратный порядок элементов в массиве Array.Reverse(grades);
Array.Find() Найдите первый элемент, соответствующий заданным критериям int firstPassingGrade = Array.Find(grades, grade => grade >= 60);
Array.FindAll() Найдите все элементы, соответствующие заданным критериям int[] passingGrades = Array.FindAll(grades, grade => grade >= 60);
Array.IndexOf() Возвращает индекс первого вхождения значения int index = Array.IndexOf(grades, 95);

Вот быстрый пример использования некоторых из этих методов:

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Array.Sort(grades);
Console.WriteLine("Sorted grades:");
foreach (int grade in grades)
{
Console.Write($"{grade} ");
}
Console.WriteLine();

int highestGrade = grades[grades.Length - 1];
Console.WriteLine($"The highest grade is: {highestGrade}");

int lowestGrade = grades[0];
Console.WriteLine($"The lowest grade is: {lowestGrade}");

Эта программа выведет:

Sorted grades:
78 85 88 92 95
The highest grade is: 95
The lowest grade is: 78

И вот вы только что完成了 стремительное путешествие по массивам C#. Помните, что практика делает мастера, так что не бойтесь экспериментировать с этими концепциями. Попробуйте создать разные типы массивов, поиграйте с многомерными массивами и исследуйте различные методы массивов. Before you know it, you'll be an array wizard, conjuring up complex data structures with ease!

Happy coding, future programmers! ??

Credits: Image by storyset