Top.Mail.Ru

Язык С#. Массивы

Массив – это конечная группа элементов одного типа, имеющая общее имя.

  1. Массивы относятся к ссылочным типам данных.
  2. Массивы   построены на основе класса System.Array, поэтому любой массив получает методы и свойства класса Array, что значительно упрощает работу с массивами.
  3. Работа с массивами более безопасна, поскольку контролируется выход за границы массива.
  4. По умолчанию  элементам массива присваиваются начальные значения:
  • для арифметических типов - 0,
  • для ссылочных типов - null,
  • для символов - пробел.
  • для логических -  false

Имеются одномерные, многомерные и ступенчатые массивы.

Одномерный массив

тип[] имя_массива = new тип [размер];
Например:  int[] a=new int [10];

Возможно объявление массива с инициализацией:

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

Например:   int[] a= {0, 1, 2, 3};
 

Массивы и исключения

Выход за границы массива в C# расценивается как ошибка, в ответ на которую генерируется исключение - IndexOutOfRangeException.

Вот пример:

Массив как объект

Базовым классом для массивов является классArray, определенный в пространстве имен System. Данный класс содержит различные свойства и методы:

Length Количество элементов массива (по всем размерностям)

RankРазмерность массива

SetValue(value, index) Установка значения элемента массива

GetValue (index) Получение значения элемента массива

Clear Присваивание элементам массива значений по умолчанию

Copy Копирование заданного диапазона элементов одного массива в другой

CopyTo Копирование всех элементов текущего одномерного массива в другой массив

IndexOf Поиск первого вхождения элемента в одномерный массив

LastIndexOf Поиск последнего вхождения элемента в одномерный массив

Reverse Изменение порядка следования элементов на обратный

Sort Упорядочивание элементов одномерного массива

Resize Заменяет размер массива указанным новым размером.

 

ПРИМЕР. Заполнение  массива случайными целыми числами и вывод его на экран:

ПРИМЕР. Передача массива в функцию:

Многомерные массивы

Объявить двумерный массив можно одним из предложенных способов:

тип [,] a = new тип [размер 1, размер 2];
тип [,] a ={{эл - ты 1-ой строки}, … , {эл-ты n-ой строки}};
тип [,] a = new тип [,]{{эл-ты 1-ой строки}, … ,{эл-ты n-ой строки}};

Пара квадратных скобок только одна [N строк, N столбцов]

Например:

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

Ступенчатые  массивы

У ступенчатых массивов задается столько пар квадратных скобок, сколько размерностей у массива.

Определение ступенчатых массивов:

int[][] arr = new int [3][]; //Объявляем ступенчатый массив

 arr[0]=new int[3]; //Определяем нулевой элемент
 arr[1]=new int[2]; //Определяем первый элемент
 arr[2] =new int[5]; //Определяем второй  элемент
 
Каждый элемент представляет собой одномерный массив целых чисел. Первый элемент массива состоит из трех целях чисел, второй — из двух и третий — из  пяти.

Для заполнения элементов массива значениями можно также использовать инициализаторы, при этом размер массива знать не требуется.

Пример:

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

arr[1] = new int[] { 2, 2 };
arr[2] = new int[] { 5   6   7   8   9};