Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 106 стр.

UptoLike

Составители: 

106
Коллекция содержит 4 элемента:
Привет Мир 5 System.IO.FileStream
Отметим, что коллекции при создании можно инициализировать,
так же, как и массивы. Например:
ArrayList al = new ArrayList() {"Привет", "Мир", "это",
"проверка"};
В реальном приложении обычно в коллекцию ArrayList добав-
ляются элементы одного и того же типа. Это позволяет вызывать метод
Sort для сортировки объектов с помощью реализации в них интерфей-
са IComparable. Можно также использовать метод Remove для удале-
ния ранее добавленных объектов, а также метод Insert для добавления
элементов в конкретное место заданное индексом. Это показано в при-
веденном ниже примере:
ArrayList al;
al = new ArrayList(){"Привет", "Мир", "это", "проверка"};
al.Remove("это");
al.Insert(1, "наш");
al.Sort();
foreach (object s in al)
Console.Write(s.ToString() + " ");
Результатом работы будет следующая строка:
Мир наш Привет проверка
Отметим, что элементы упорядочены по алфавиту (стандартная
реализация интерфейса IComparable для строк) и слово этоотсут-
ствует. Можно также создать собственную реализацию IComparer для
управления порядком сортировки. Тогда, как метод ICompara-
ble.CompareTo управляет порядком сортировки по умолчанию для
объектов класса, метод IComparer.Compare может использоваться для
задания специальных способов сортировки. Например, рассмотрим про-
стой класс, который только реализует интерфейс IComparer:
public class reverseSort : IComparer {
int IComparer.Compare(Object x, Object y) {
return((new
CaseInsensitiveComparer()).Compare(y, x));
}}
Имея такой класс можно передать экземпляр данного класса ме-
тоду Sort класс ArrayList. В приведенном ниже примере показано
как можно это сделать. В данном примере используется метод Ad-
dRange(), с помощью которого к коллекции ArrayList добавляется
массив элементов (если есть отдельные элементы, а массива еще нет, то
он может быть сразу создан и инициализирован):