Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Зубчатый (изрезанный) массив | Класс Array | Свойства Lenght Rank Sort

   Зубчатый (изрезанный) массив

Одномерные и многомерные массивы известны вам еще со времен языков С/С++. Теперь же мы с вами познакомимся с новым видом массивов, а именно - зубчатый (изрезанный) массив.

Вот вам иллюстрации:

Многомерные массивы по форме похожи на прямоугольник или квадрат, а изрезанные (зубчатые) массивы являются гибкими.

Ну раз вы увидели изрезанный (зубчатый) массив в глаза, то теперь давайте займемся изучением:

  1. объявление
  2. Объявлять зубчатый (изрезанный) массив на самом деле просто. Тут даже говорить не надо, а надо смотреть на примеры:

    int[][] a;
    char[][] ch;

  3. инициализация
  4. А вот тут дело обстоит посложнее, чем с объявлением. Главное помнить, что при инициализации всегда нужно указывать количество строк. А так как каждая строка (массив) будет содержать различное количество столбцов, то скобки остаются незаполненными:

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

    Т.е. сначала как бы говорим, что у нас будут 2 строки. И далее инициализируем каждую строчку. Причем запомните, что строка может содержать не только массив, но и просто одно значение. Поэтому понятие "массив массивов" к зубчатому (изрезанному) массиву просто неприменимо

  5. доступ к элементам
  6. Тут можете смело вспоминать как вы пробегались по многомерным массивам в С/С++ и действовать по той же схеме:

    for (int stroka =0; stroka != arr1.Lenght; stroka++){
       for (int stolbec = 0; stolbec != arr1[stroka].Lenght;          stolbec++){
          Console.WriteLine(arr1[strola][stolbec]);
       }
    }

   Класс Array

Все массивы, которые мы создавали выше, являются наследниками класса Array. Т.е. соответственно все методы и свойства этого класса, так же доступны нашему созданному массиву.

С помощью свойств класса Array мы можем с легкостью узнать количество элементов в массиве, его размерность:

int[] arr1 = {5, 8, 4};
int[,] arr2 = { {23, 44}, {55, 88} };
Console.WriteLine(arr1.Lenght); // вывод 3
Console.WriteLine(arr2.Rank); // вывод 2

   Свойство Lenght

Т.е. в первом массиве arr1 с помощью свойства Lenght мы узнаем, сколько в нем содержится элементов. Свойство Lenght очень полезно, например для создания циклов, что б знать, когда необходимо будет остановиться.

   Свойство Rank

А во втором массиве arr2 с помощью свойства Rank мы узнаем какая размерность у нашего массива. Если свойство Rank применить к первому массиву arr1, то ответом будет 1.

   Метод Sort

Так же для удобства пользователей в классе Array уже существует встроенная пузырьковая сортировка, которую можно вызвать, применив к массиву метод Sort, который является статическим:

int[] arr3 = {78, 1, 23, 6, 8};
Array.Sort(arr3);

И если вы захотите вывести элементы на экран, то они выведутся в следующей последовательности:

1   6   8   23   78

Рекомендации к прочтению:

  1. События
  2. Делегаты
  3. Регулярные выражения
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru