Упражнение. Начало работы с основами массива
- 19 минут
Массивы можно использовать для хранения нескольких значений одного типа в одной переменной. Значения, хранящиеся в массиве, обычно связаны. Например, список имен учащихся может храниться в строковом массиве с именем students.
Ваша работа в отделе безопасности сосредоточена на поиске шаблона для мошеннических заказов. Вы хотите, чтобы код проверял прошлые заказы клиентов и идентифицировать маркеры, связанные с мошенническими заказами. Ваша компания надеется, что маркеры можно использовать для выявления потенциальных мошеннических заказов на покупку в будущем до их обработки. Так как вы не всегда знаете заранее, сколько заказов необходимо проверить, вы не можете создавать отдельные переменные для хранения каждого идентификатора заказа. Как создать структуру данных для хранения нескольких связанных значений?
В этом упражнении вы используете массивы для хранения и анализа коллекции идентификаторов заказов.
Что представляет собой массив?
Массив — это коллекция отдельных элементов данных, доступная через одно имя переменной. Для обращения к каждому элементу массива используется отсчитываемый от нуля числовой индекс. Массивы позволяют создавать коллекцию значений данных, которые используют общую цель или характеристики под одним именем переменной для упрощения обработки.
Объявление массивов и доступ к элементам массива
Массив — это специальный тип переменной, который может содержать несколько значений одного типа данных. Синтаксис объявления немного отличается для массива, так как необходимо указать как тип данных, так и размер массива.
Подготовка среды программирования
Этот модуль включает действия, которые помогут вам выполнить сборку и выполнение примера кода. Рекомендуется выполнить эти действия с помощью Visual Studio Code в качестве среды разработки. Использование Visual Studio Code для этих действий помогает вам стать более удобным написанием и запуском кода в среде разработчика, которая используется специалистами по всему миру.
Откройте Visual Studio Code.
Для открытия Visual Studio Code можно использовать меню Windows (или эквивалентный ресурс для другой ОС).
В меню "Файл Visual Studio Code" выберите "Открыть папку".
В диалоговом окне "Открыть папку" перейдите в папку "Рабочий стол Windows".
Если у вас есть другое расположение папки, в котором хранятся проекты кода, вместо этого можно использовать это расположение папки. Для этого обучения важно иметь расположение, которое легко найти и помнить.
В диалоговом окне "Открыть папку" выберите "Выбрать папку".
Если появится диалоговое окно безопасности с запросом доверия авторам, нажмите кнопку "Да".
В меню терминала Visual Studio Code выберите новый терминал.
Обратите внимание, что в командной строке на панели терминала отображается путь к папке текущей папки. Рассмотрим пример.
C:\Users\someuser\Desktop>Примечание.
Если вы работаете на собственном компьютере, а не в песочнице или размещенной среде, и вы выполнили другие модули Microsoft Learn в этой серии C#, возможно, вы уже создали папку проекта для примеров кода. Если это так, можно пропустить следующий шаг, который используется для создания консольного приложения в папке TestProject.
В командной строке терминала, чтобы создать консольное приложение в указанной папке, введите следующую строку:
dotnet new console -o ./CsharpProjects/TestProjectЭта команда .NET CLI использует шаблон программы .NET для создания проекта консольного приложения C# в указанном расположении папки. Команда создает для вас папки CsharpProjects и TestProject и использует TestProject в качестве имени вашего файла
.csproj.Если отображается сообщение о том, что файлы уже существуют, перейдите к следующим шагам. Вы повторно используете существующие файлы проекта.
В представлении EXPLORER разверните папку CsharpProjects .
Вы увидите папку TestProject и два файла, файл программы C# с именем Program.cs и файл проекта C# с именем TestProject.csproj.
В меню "Файл Visual Studio Code" выберите "Открыть папку".
В диалоговом окне "Открыть папку " выберите папку CsharpProjects и выберите "Выбрать папку".
В представлении EXPLORER разверните папку TestProject и выберите Program.cs.
Удалите существующие строки кода.
Вы будете использовать этот консольный проект C# для создания, сборки и запуска примеров кода во время этого модуля.
Закройте панель терминала.
Объявление нового массива
Чтобы объявить новый массив строк, которые могут содержать три элемента, введите следующий код:
string[] fraudulentOrderIDs = new string[3];Пройдите минуту, чтобы проверить код.
Оператор
newсоздает в памяти компьютера экземпляр массива, который может содержать три строковых значения. Дополнительные сведения о ключевом словеnewсм. в модуле "Вызов методов из библиотеки классов .NET с помощью C#".Обратите внимание, что первый набор квадратных квадратных скобок просто указывает компилятору, что переменная с именем
[]является массивом, но второй набор квадратных скобокfraudulentOrderIDs[3]указывает количество элементов, которые может содержать массив.Примечание.
В этом примере показано, как объявить массив строк, однако можно создать массив каждого типа данных, включая примитивы, такие
intкак иboolболее сложные типы данных, такие как классы. В этом примере используется упрощение строк для того, чтобы максимально эффективно усвоить, с чего следует начинать работу.
Назначение значений элементам массива
На этом этапе вы объявили массив строк, но каждый элемент массива пуст. Для обращения к элементу массива используется отсчитываемый от нуля числовой индекс в квадратных скобках. Можно назначить значение элементу массива с помощью = обычной переменной.
Чтобы назначить значения идентификатора заказа массиву
fraudulentOrderIDs, обновите код следующим образом:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Пройдите минуту, чтобы проверить код.
Обратите внимание, что вы используете имя массива для доступа к элементам массива. Доступ к каждому элементу осуществляется по отдельности путем указания нумерации индекса в квадратных скобках.
Так как массив объявлен в виде строки, значения, назначенные вами, также должны быть строками. В этом сценарии идентификаторы порядка назначаются элементам массива.
Попытка использовать индекс, который выходит за пределы массива
Это может показаться не интуитивно понятным сначала, но важно помнить, что вы объявляете количество элементов в массиве. Однако доступ к каждому элементу массива начинается с нуля. Поэтому для доступа ко второму элементу в массиве используется индекс 1.
Обычно новички забывают, что массивы основаны на нулях и пытаются получить доступ к элементу массива, который не существует. При возникновении этой ошибки возникает исключение среды выполнения, информирующее вас о попытке получить доступ к элементу, который находится за пределами границы массива.
Чтобы намеренно разорвать приложение, попытайтесь получить доступ к четвертому элементу массива с использованием значения 3индекса.
В нижней части файла кода введите следующую строку кода:
fraudulentOrderIDs[3] = "D000";Убедитесь, что код соответствует этому примеру:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
В представлении EXPLORER откройте терминал в папке TestProject, щелкните правой кнопкой мыши TestProject и выберите "Открыть в интегрированном терминале".
Панель терминала должна открыться и должна содержать командную строку, показывающую, что терминал открыт для расположения папки TestProject .
В командной строке терминала для компиляции кода введите
dotnet buildи нажмите клавишу ВВОД.Должно появиться следующее сообщение:
Build succeeded. 0 Warning(s) 0 Error(s)В командной строке терминала, чтобы запустить код, введите
dotnet runи нажмите клавишу ВВОД.При запуске приложения вы получите следующее сообщение об ошибке среды выполнения:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.<Main>$(String[] args) in C:\Users\someuser\Desktop\CsharpProjects\TestProject\Program.cs:line 6Обратите внимание на следующие части ошибки:
- Сообщение об ошибке:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Расположение ошибки:
Program.cs:line 6
- Сообщение об ошибке:
Закомментируйте строку, которая вызвала ошибку среды выполнения.
// fraudulentOrderIDs[3] = "D000";
Вы узнали, как назначить значение элементу массива. Теперь рассмотрим, как получить доступ к значению, хранящемуся в элементе массива.
Получение значений из элементов массива
Доступ к значению элемента массива работает так же, как назначение значения элементу массива. Просто укажите индекс элемента, значение которого требуется извлечь.
Чтобы написать значение каждого мошеннического идентификатора заказа, обновите код следующим образом:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
В представлении EXPLORER откройте терминал в папке TestProject, щелкните правой кнопкой мыши TestProject и выберите "Открыть в интегрированном терминале".
В командной строке терминала введите
dotnet runи нажмите клавишу ВВОД.Должно появиться следующее сообщение:
First: A123 Second: B456 Third: C789
Переназначение значения массива
Элементы массива похожи на любое другое значение переменной. Вы можете назначить, извлечь и переназначить значение каждому элементу массива.
В конце файла кода для переназначения и печати значения первого элемента массива введите следующий код:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Убедитесь, что код соответствует следующему примеру:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
В представлении EXPLORER откройте терминал в папке TestProject, щелкните правой кнопкой мыши TestProject и выберите "Открыть в интегрированном терминале".
В командной строке терминала введите
dotnet runи нажмите клавишу ВВОД.Должно появиться следующее сообщение:
First: A123 Second: B456 Third: C789 Reassign First: F000
Инициализация массива
Вы можете инициализировать массив во время объявления так же, как и обычную переменную.
Закомментируйте строки, в которых вы объявляете
fraudulentOrderIDsпеременную.С помощью нескольких строковый комментарий (
/* ... */) можно закомментировать объявлениеfraudulentOrderIDsи строки, используемые для назначения значений элементам массива.Чтобы объявить массив и инициализировать значения в одной инструкции, введите следующий код:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];В этом примере используется синтаксис выражения коллекции , который был представлен в C# 12 и поддерживается в .NET 10.
Вы также можете увидеть старый синтаксис, используемый для инициализации массива.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Обратите внимание, что этот старый синтаксис использует фигурные скобки
{}для заключения значений массива. Оба синтаксиса допустимы.Примечание.
В этом обучении может отображаться сочетание старого синтаксиса и синтаксиса выражения коллекции.
Убедитесь, что код соответствует следующему примеру:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Минуту, чтобы изучить инструкцию объявления.
Обратите внимание, что этот синтаксис является компактным и простым для чтения. При запуске приложения не должно быть изменений в выходных данных.
В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
В представлении EXPLORER откройте терминал в папке TestProject, щелкните правой кнопкой мыши TestProject и выберите "Открыть в интегрированном терминале".
В командной строке терминала введите
dotnet runи нажмите клавишу ВВОД.Вы должны увидеть то же сообщение, что и раньше:
First: A123 Second: B456 Third: C789 Reassign First: F000
Использование свойства Length массива
В зависимости от способа создания массива вы можете заранее не знать, сколько элементов он содержит. Чтобы определить размер массива, можно использовать свойство Length.
Примечание.
Свойство Length массива не основано на нулях.
В конце файла кода введите следующий код:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Этот код использует свойство массива
Length, целое число, чтобы вернуть количество элементов в массивеfraudulentOrderIDs.Убедитесь, что код соответствует этому примеру:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Сохраните изменения в файле Program.cs , а затем запустите приложение.
Должен появиться следующий результат:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Кратко
Ниже приведены самые важные моменты, которые следует помнить при работе с массивами:
- Массив представляет собой специальную переменную, содержащую коллекцию связанных элементов данных.
- Вам нужно запоминать базовый формат объявления переменной массива.
- Для обращения к каждому элементу массива для задания или получения его значения используется отсчитываемый от нуля числовой индекс в квадратных скобках.
- Если вы пытаетесь получить доступ к индексу за пределами границы массива, вы получите исключение времени выполнения.
- Свойство
Lengthпредоставляет программный способ для определения количества элементов в массиве.