Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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.2. Базовый синтаксис и семантика Ruby
- System tools used for debugging
- Integrated Secure Communications System
- 1. Оператор Select – базовый оператор языка структурированных запросов
- Пример: базовый клиент Web
- Когда включаю компьютер, при загрузке пишется Insert system disk and press enter. Что нужно делать?
- На всех дисках моего компьютера есть папка System Volume Information. Для чего она нужна?
- 14.5.1. Open Systems Interconnection
- 5.3. TRENDS IN DISTRIBUTED FILE SYSTEMS
- Абстрактный базовый класс FileSystemInfo
- 1. Basic microprocessor systems
- CHAPTER 12 System-Monitoring Tools