Метод
Описание
public bool
ContainsValue(TValue value)
public IEnumerator> GetEnumerator() public int IndexOfKey(TKey key)
public int IndexOfValue(TValue value)
public bool Remove(TKey key)
public void RemoveAt(int index) public void TrimExcessO
Возвращает логическое значение true,если вызывающий список содержит значение value ; в противном случае — логическое значение false
Возвращает перечислитель для вызывающего словаря
Возвращает индекс ключа key. Если искомый ключ не обнаружен в списке, возвращается значение -1
Возвращает индекс первого вхождения значения value в вызывающем списке. Если искомое значение не обнаружено в списке, возвращается значение -1 Удаляет из списка пару “ключ-значение” по указанному ключу key. При удачном исходе операции возвращается логическое значение true,а если ключ key отсутствует в списке — логическое значение falseУдаляет из списка пару “ключ-значение” по указанному индексу index Сокращает избыточную емкость вызывающей коллекции в виде отсортированного списка
Кроме того, в классе SortedList определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
Свойство
Описание
public int Capacity { get; set; }
Получает или устанавливает емкость
вызывающей коллекции в виде отсо
ртированного списка
public IComparer Comparer { get;
■ } Получает метод сравнения для вызы
вающего списка
public IList Keys { get; }
Получает коллекцию ключей
public IList Values { get; }
Получает коллекцию значений
И наконец, в классе SortedList
TValue> реализуется приведенный ниже
индексатор, определенный в интерфейсе IDictionaryCTKey, TValueX
public TValue this[TKey key ] { get; set;
} .
Этот индексатор служит для получения и
установки значения элемента коллекции,
а также для добавления в коллекцию нового элемента. Но в данном случае в качестве
индекса служит ключ элемента, а не сам индекс.
В приведенном ниже примере демонстрируется применение класса
SortedList Это еще один измененный вариант представленного
ранее примера базы данных работников. В данном варианте база данных хранится в коллекции типа SortedList.
// Продемонстрировать применение класса обобщенной // коллекции SortedList.
using System;
using System.Collections.Generic;
class GenSLDemo {
static void Main() {
// Создать коллекцию в виде отсортированного списка // для хранения имен и фамилий работников и их зарплаты.
SortedList si =
new SortedList();
// Добавить элементы в коллекцию, si.Add("Батлер, Джон", 73000); si.Add("Шварц, Capa", 59000); si.Add("Пайк, Томас", 45000); si.Add("Фрэнк, Эд", 99000);
// Получить коллекцию ключей, т.е. фамилий и имен.
ICollection с = si.Keys;
// Использовать ключи для получения значений, т.е. зарплаты, foreach(string str in с)
Console.WriteLine("{0}, зарплата: {1:C}", str, si[str]);
Console.WriteLine();
}
}
Ниже приведен результат выполнения этой программы.
Батлер, Джон, зарплата: $73,000.00 Пайк, Томас, зарплата: $45,000.00 Фрэнк, Эд, зарплата: $99,000.00 Шварц, Сара, зарплата: $59,000.00
Как видите, список работников и их зарплаты отсортированы по ключу, в качестве которого в данном случае служит фамилия и имя работника.
Класс Stack
Класс Stack является обобщенным эквивалентом класса необобщенной коллекции Stack. В нем поддерживается стек в виде списка, действующего по принципу "первым пришел — последним обслужен". В этом классе реализуются интерфейсы Collection, IEnumerable и IEnumerable. Кроме того, в классе Stack непосредственно реализуются методы Clear(),Contains() иСоруТоО, определенные в интерфейсе ICollection. А методы Add () и Remove () в этом классе не поддерживаются, как, впрочем, и свойство IsReadOnly. Коллекция класса Stack имеет динамический характер, расширяясь по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться. В классе Stack определяются следующие конструкторы.
Читать дальше