РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО C#: МАССИВЫ
Здравствуйте, будущий программист! Сегодня мы отправимся в увлекательное путешествие в мир массивов C#. Представьте массивы как магическую коробку, которая может содержать несколько элементов одного типа. Это как коробка с вашими любимыми конфетами, но вместо конфет мы храним данные!
Что такое массивы?
Прежде чем углубиться в детали, давайте разберемся, что такое массивы. Массив — это структура данных, которая позволяет вам хранить несколько значений одного типа в одной переменной. Представьте, что вы учитель (как я!), и вам нужно сохранить оценки 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