Работа с массивами в С#

  • docx
  • 27.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002977.docx

 Работа с массивами в С#

Массив – набор элементов одного и того же типа, объединенных общим именем. Массивы в С# можно использовать по аналогии с тем, как они используются в других языках программирования. Однако С#- массивы имеют существенные отличия: они относятся к ссылочным ти- пам данных, более того – реализованы как объекты. Фактически имя массива является ссылкой на область кучи (динамической памяти), в ко- торой последовательно размещается набор элементов определенного типа. Выделение памяти под элементы происходит на этапе инициали- зации массива. А за освобождением памяти следит система сборки му- сора – неиспользуемые массивы автоматически утилизируются данной системой.

Рассмотрим в данной лабораторной работе одномерные массивы. Одномерный массив – это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент име- ет свой номер. Нумерация элементов массива в С# начинается с нуля, то есть, если массив состоит из 10 элементов, то его элементы будут иметь следующие номера: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Одномерный массив в С# реализуется как объект, поэтому его со- здание представляет собой двухступенчатый процесс. Сначала объявля- ется ссылочная переменная на массив, затем выделяется память под требуемое количество элементов базового типа, и ссылочной перемен- ной присваивается адрес нулевого элемента в массиве. Базовый тип определяет тип данных каждого элемента массива. Количество элемен- тов, которые будут храниться в массиве, определяется размер массива.

В общем случае процесс объявления переменной типа массив, и выделение необходимого объема памяти может быть разделено. Кроме того на этапе объявления массива можно произвести его инициализа- цию. Поэтому для объявления одномерного массива может использо- ваться одна из следующих форм записи:

 

тип[] имя_массива;

 

В этом случае описывается ссылка на одномерный массив, которая в дальнейшем может быть использована для адресации на уже суще- ствующий массив. Размер массива при таком объявлении не задаётся. Пример, в котором объявляется массив целых чисел с именем a:

 

int[] a;


Другая форма объявления массива включает и его инициализацию указанным количеством элементов:

 

тип[] имя_массива = new тип[размер];

 

В этом случае объявляется одномерный массив указанного типа и выделяется память под указанное количество элементов. Адрес данной области памяти записывается в ссылочную переменную. Элементы мас- сива инициализируются значениями, которые по умолчанию приняты для данного типа: массивы числовых типов инициализируются нулями, строковые переменные пустыми строками, символы пробелами, объекты ссылочных типов – значением null. Пример такого объявле- ния:

 

int[] a = new int[10];

 

Здесь выделяется память под 10 элементов типа int.

Наконец, третья форма записи даёт возможность сразу инициали- зировать массив конкретными значениями:

 

тип[] имя_массива = {список инициализации};

 

При такой записи выделяется память под одномерный массив, раз- мерность которого соответствует количеству элементов в списке ини- циализации. Адрес этой области памяти записан в ссылочную перемен- ную. Значение элементов массива соответствует списку инициализации. Пример:

 

int[] a = { 0, 1, 2, 3 };

 

В данном случае будет создан массив a, состоящий из четырёх эле- ментов, и каждый элемент будет инициализирован очередным значени- ем из списка.

Обращение к элементам массива происходит с помощью индекса: для этого нужно указать имя массива и в квадратных скобках его номер. Например: a[0], b[10], c[i]. Следует помнить, что нумерация элемен- тов начинается с нуля!

Так как массив представляет собой набор элементов, объединен- ных общим именем, то обработка массива обычно производится в цик- ле. Например:


int[] myArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

for (int i = 0; i < 10; i++) MessageBox.Show(myArray[i]);