Коллекции, в которых хранятся пары ключ/значение, используют для их хранения объект типа DictionaryEntry.
В этой структуре определены следующие свойства:
public object Key { get; set; }
public object Value { get; set; }
Эти свойства используются для получения доступа к ключу или к соответствующему ему значению.
Объект типа DictionaryEntry можно создать с помощью следующего конструктора:
Public DictionaryEntry (object key, object value)
Здесь параметр key принимает ключ,
А параметр value — значение.
Интерфейс IComparer
Этот интерфейс можно использовать для задания способа сортировки элементов коллекции. В интерфейсе IComparer определен метод Compare(), который позволяет сравнивать два объекта:
Int Compare (object v1, object v2)
Метод Compare() возвращает положительное число, если значение v1>v2, отрицательное, если v1<v2, и нуль, если v1=v2.
Интерфейс IHashCodeProvider
Интерфейс IHashCodeProvider должен быть реализован коллекцией, если программисту необходимо определить собственную версию метода GetHashCode(). По умолчанию используется метод Object.GetHashCode().
КОЛЛЕКЦИИ
Классы коллекций общего назначения
Класс | Описание |
ArrayList | Динамический массив, т.е. массив который при необходимости может увеличивать свой размер. |
Hashtable | Хеш-таблица (словарь) для пар ключ/значение. |
Queue | Очередь, или список, действующий по принципу: первым прибыл — первым обслужен. |
SortedList | Отсортированный список пар ключ/значение. |
Stack | Стек, или список, действующий по принципу: первым прибыл — последним обслужен. |
Класс ArrayList
Класс ArrayList предназначен для поддержки динамических массивов, которые при необходимости могут увеличиваться или сокращаться.
Класс ArrayList реализует интерфейсы:
• ICollection,
• IList,
• lEnumerable,
• ICloneable.
// Демонстрация использования ArrayList-массива.
using System;
using System.Collections;
Class ArrayListDemp
{
Public static void Main()
{
ArrayList al = new ArrayList(); // Создаем динамический массив.
// Добавляем элементы в динамический массив.
al.Add('C');
al.Add('A');
al.Add('E');
// Отображаем массив, используя индексацию.
for (int i = 0; i < al.Count; i++)
Console.Write(al[i] + " ");
Al.Remove('A'); // Удаляем элемент
al[0] = 'Y'; // Изменяем элементы
al[1] = 'X';
Al.Sort(); // Сортировка массива
Foreach (char сh in al)
Console.Write(сh + " ");
Console.WriteLine("Индекс элемента 'Y' равен " +
Al.BinarySearch('Y')); // поиск элемента
// Создаем обычный массив из динамического.
char[] ia = (char[])al.ToArray (typeof(char));
}
}
Класс Queue
Добавление элементов в очередь и удаление их из нее осуществляется по принципу "первым пришел — первым обслужен" (first-in, first-out— FIFO).
Очередь — это динамическая коллекция, которая при необходимости увеличивается, чтобы принять для хранения новые элементы.
Класс Queue реализует интерфейсы:
• ICollection (здесь определено свойство int Count {get;} ),
• lEnumerable,
• ICloneable.
Дата добавления: 2019-02-08; просмотров: 757;