Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретический_курс.doc
Скачиваний:
36
Добавлен:
10.11.2019
Размер:
7.68 Mб
Скачать

3.8. Понятие «Массив», «Строка», «Кортеж» и «Перечисление»

3.8.1. Понятие «Массив» Понятие «Массив»

1. Понятие «Массив»

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

type[] arrayName;

В следующем примере показано создание одномерных, многомерных массивов и «массивов массивов»:

class Program

{

static void Main()

{

// Объявляем одномерный массив

int[] array1 = new int[5];

// Объявляем и заполняем

int[] array2 = new int[] { 1, 3, 5, 7, 9 };

// Альтернативный синтаксис

int[] array3 = { 1, 2, 3, 4, 5, 6 };

// Объявляем двумерный массив

int[,] multiDimensionalArray1 = new int[2, 3];

// Объявляем и заполняем

int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

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

int[][] jaggedArray = new int[6][];

// Заполняем параметры для первого массива в массиве массивов

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

}

}

Массив имеет следующие свойства:

  • Массив может быть одномерным, многомерным или массивом массивов.

  • Значение по умолчанию числовых элементов массива задано равным нулю, а элементы ссылок имеют значение NULL.

  • Не выровненный массив является массивом массивов и поэтому его элементы являются ссылочными типами и инициализируются значением null.

  • Индексация массивов начинается с нуля: массив с элементами n индексируется от 0 до n-1.

  • Элементы массива могут быть любых типов, включая тип массива.

  • Типы массива являются ссылочными типами, производными от абстрактного базового типа Array. Поскольку этот тип реализует IEnumerable и IEnumerable<T>, в C# во всех массивах можно использовать итерацию foreach.

2. Массивы как объекты

В C# массивы фактически являются объектами, а не только адресуемыми областями непрерывной памяти, как в C и C++.Array является абстрактным базовым типом всех типов массивов. Можно использовать свойства и другие члены класса, которые имеет Array. В примере используется свойство Length для получения длины массива. В следующем коде длина массива numbers, равная 5, присваивается переменной lengthOfNumbers:

int[] numbers = { 1, 2, 3, 4, 5 };

int lengthOfNumbers = numbers.Length;

Класс Array позволяет использовать много других полезных методов и свойств для выполнения сортировки, поиска и копирования массивов.

В этом примере свойство Rank используется для отображения числа измерений массива:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LC_Console

{

class Program

{

static void Main()

{

int[,] theArray = new int[5, 10];

Console.WriteLine("Массив имеет {0} измерений", theArray.Rank);

Console.WriteLine("Для продолжения нажмите любую клавишу . . ."); ;

Console.ReadKey();

}

}

}

/* Выведет:

* 2

* Для продолжение нажмите любую клавишу . . .

*/