ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
На
Рис. 3.22. Многомерный массив
Второй тип многомерных массивов – это невыровненный массив. Как следует из самого названия, такой массив содержит некоторый набор массивов, каждый из которых может иметь свой верхний предел для индексов. Например:
На рис. 3.23 показан соответствующий вывод (обратите, что здесь массив имеет "неровный край").
Рис. 3.23. Невыровненный массив
Теперь когда вы знаете, как строить и заполнять массивы в C#, обратим внимание на базовый класс любого массива: System.Array.
Базовый класс System.Array
Каждый создаваемый вами массив в .NET автоматически получается из System.Array. Этот класс определяет рад полезных методов для упрощения работы с массивами. В табл. 3.14 предлагаются описания некоторых из наиболее интересных членов указанного класса.
Таблица 3.14. Некоторые члены System.Array
Член | Описание |
---|---|
BinarySearch | Статический метод, выполняющий поиск заданного элемента в (предварительно отсортированном) массиве. Если массив скомпонован из пользовательских типов, искомый тип должен реализовывать интерфейс IComparer (см. главу 7),
|
Clear | Статический метод, очищающий заданный диапазон элементов в массиве (устанавливается 0 для числовых типов и null – для ссылочных типов) |
CopyTo | Метод, используемый для копирования элементов из массива-источника в целевой массив |
Length | Свойство, доступное только для чтения и используемое для выяснения числа элементов в массиве |
Rank | Свойство, возвращающее значение размерности данного массива |
Reverse | Статический метод, инвертирующий порядок следования элементов одномерного массива |
Sort | Метод, сортирующий одномерный массив внутренних типов. Если элементы в массиве реализуют интерфейс IComparer, можно также сортировать пользовательские типы (снова см. главу 7) |
Рассмотрим примеры использовании некоторых из этих членов. В следующем программном коде используются статические методы Reverse и Clear (а также свойство Length) для вывода некоторой информации о массиве строк firstNames на консоль.
Обратите особое внимание на то, что при вызове метода Clear для массива оставшиеся элементы массива не сжимаются в меньший массив. Для подвергшихся очистке элементов просто устанавливаются значения по умолчанию. Если вам нужен контейнер динамического типа, поищите подходящий тип в пространстве имен System.Collections.
Исходный код. Проект Arrays размещен в подкаталоге, соответствующем главе 3.