Чтение онлайн

на главную - закладки

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №9
Шрифт:

Console.WriteLine("Отсортированный массив col1: ");

Arrs.PrintCollection("col1",col1);

first = Array.BinarySearch(col1, 2);

Console.WriteLine("Индекс вхождения 2 в col1: {0}",first);

//Создание экземпляра (массива)

Array my2Dar = Array.Createlnstance(typeof(double), 2,3);

Arrs.PrintCollection("my2Dar",my2Dar);

//клонирование

my2Dar = (Array)col4.Clone;

Console.WriteLine("Массив my2Dar после клонирования col4: ");

Arrs.PrintCollection("my2Dar",my2Dar);

//копирование CopyTo col1.CopyTo (соl2, 0);

Console.WriteLine("Массив col2

после копирования col1: ");

Arrs.PrintCollection("col2",col2);

}

В этой процедуре продемонстрированы вызовы различных статических методов класса Array. Для метода Сору показан вызов двух реализаций этого метода, когда копируется весь массив и часть массива. Закомментированный оператор вызова метода IndexOf напоминает о невозможности использования методов поиска при работе с многомерными массивами. Приведу результаты вывода, порожденные этим кодом.

Рис. 12.3. Результаты применения статических методов класса Array

Таблица 12.1. Свойства класса Array

Свойство • Родитель • Описание

IsFixedSize • Интерфейс IListTrue, если массив статический

IsReadOnly • Интерфейс IList • Для всех массивов имеет значение false

IsSynchronized • Интерфейс ICollectionTrue или False, в зависимости оттого, установлена ли синхронизация доступа для массива

SyncRootИнтерфейс ICollection

Собственный метод синхронизации доступа к массиву. При работе с массивом его можно закрыть на время обработки, что запрещает его модификацию каким-либо потоком:

Array myCol = new int [];

lock(myCol.SyncRoot) {

foreach (Object item in myCol)

{

// безопасная обработка массива }

Length • Число элементов массива •

Rank • Размерность массива

Таблица 12.2. Статические методы класса Array

Метод • Описание

BinarySearch • Двоичный поиск. Описание и примеры даны в тексте

Clear • Выполняет начальную инициализацию элементов. В зависимости от типа элементов устанавливает значение о для арифметического типа, false — для логического типа, Null для ссылок, "" — для строк.

Copy • Копирование части

или всего массива в другой массив. Описание и примеры даны в тексте

Create Instance • Класс Array, в отличие от многих классов, может создавать свои экземпляры не только с помощью конструктора new, но и при вызове метода CreateInstance:

Array my2Dar = Array.CreateInstance(typeof(double), 2,2)

IndexOf • Индекс первого вхождения образца в массив. Описание и примеры даны в тексте

LastlndexOf • Индекс последнего вхождения образца в массив. Описание и примеры даны в тексте

Reverse • Обращение одномерного массива. Описание и примеры даны в тексте

Sort • Сортировка массива. Описание и примеры даны в тексте

Сводка свойств и методов класса Array

Многие возможности, которыми можно пользоваться при работе с массивами, уже обсуждены. В завершение этой темы в таблицах 12.1-12.3 приведем сводку всех свойств и методов класса Array.

Таблица 12.3. Динамические методы класса Array

Метод • Родитель • Описание •

Equals • Класс Object • Описание и примеры даны в предыдущих главах.

GetHashCode • Класс Object • Описание и примеры даны в предыдущих главах.

GetType • Класс ObjectОписание и примеры даны в предыдущих главах.

ToString • Класс Object • Описание и примеры даны в предыдущих главах.

Clone • Интерфейс ICIoneable • Позволяет создать плоскую или глубокую копию массива. В первом случае создаются только элементы первого уровня, а ссылки указывают на те же самые объекты. Во втором случае копируются объекты на всех уровнях. Для массивов создается только плоская копия.

CopyTo • Интерфейс ICollection • Копируются все элементы одномерного массива в другой одномерный массив, начиная с заданного индекса:

col1.CopyTo(со12,0);

GetEnumerator • Интерфейс IEnumerable • Стоит за спиной цикла ForEach

GetLength • _ • Возвращает число элементов массива по указанному измерению. Описание и примеры даны в тексте главы.

Поделиться:
Популярные книги

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

(Не)зачёт, Дарья Сергеевна!

Рам Янка
8. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
(Не)зачёт, Дарья Сергеевна!

Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Коллектив авторов
Warhammer Fantasy Battles
Фантастика:
фэнтези
5.00
рейтинг книги
Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

Мы все умрём. Но это не точно

Aris me
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
Мы все умрём. Но это не точно

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Архил...? 4

Кожевников Павел
4. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
5.50
рейтинг книги
Архил...? 4

Город Богов 3

Парсиев Дмитрий
3. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 3

Подари мне крылья. 2 часть

Ских Рина
Любовные романы:
любовно-фантастические романы
5.33
рейтинг книги
Подари мне крылья. 2 часть

Город воров. Дороги Империи

Муравьёв Константин Николаевич
7. Пожиратель
Фантастика:
боевая фантастика
5.43
рейтинг книги
Город воров. Дороги Империи

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Мир Возможностей

Бондаренко Андрей Евгеньевич
1. Мир Возможностей
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Мир Возможностей

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я