Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Базовый класс 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 на консоль.

// Создание строковых массивов и проверка
// некоторых членов System.Array.
static void Main(string[] args) {
 // Массив строк.
 string[] firstNames = {"Steve", "Dominic", "Swallow", "Baldy"};
 // Печать имен в объявленном виде.
 Console.WriteLine("Вот вам массив:");
 for(int i = 0; i ‹ firstNames.Length; i++) Console.Write("Имя: {0}t", firstNames[i]);
 Console.WriteLine("n");
 // Инвертирование порядка в массиве и печать.
 Array.Reverse(firstNames);
 Console.WriteLine("Вот вам инвертированный массив:");
 for (int i = 0; i ‹ firstNames.Length; i++) Console.Write("Имя: (0}t", firstNames[i]);
 Console.WriteLine("n");
 // Очистка всех данных, хроме Baldy.
 Console.WriteLine("Очистка всех данных, кроме Baldy…");
 Array.Clear(firstNames, 1, 3);
 for (int i = 0; i ‹ firstNames.Length; i++) Console.Write ("Имя: {0}t", firstNames[i]);
 Console.ReadLine();
}

Обратите особое внимание на то, что при вызове метода Clear() для массива оставшиеся элементы массива не сжимаются в меньший массив. Для подвергшихся очистке элементов просто устанавливаются значения по умолчанию. Если вам нужен контейнер динамического типа, поищите подходящий тип в пространстве имен System.Collections.

Исходный код. Проект Arrays размещен в подкаталоге, соответствующем главе 3.

Оглавление книги


Генерация: 1.308. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз