программирование. Руководство su P# a n Reference в herbert schildt полное руководство с 0 герберт шилдт
Скачать 3.32 Mb.
|
void Add(T item) void Clear() bool Contains(T item) void CopyTo(T[] array, int arraylndex) void Remove(T item) Добавляет элемент item в вызывающую коллекцию. Генерирует исключение NotSupportedException, если коллекция доступна только для чтения Удаляет все элементы из вызывающей коллекции Возвращает логическое значение true, если вызывающая коллекция содержит элемент item , а иначе – логическое значение false Копирует содержимое вызывающей коллекции в массив array , начиная с элемента, указываемого по индексу arraylndex Удаляет первое вхождение элемента item в вызывающей коллекции. Возвращает логическое значение true, если элемент i tem удален. А если этот элемент не найден в вызывающей коллекции, то возвращается логическое значение false Некоторые из перечисленных выше методов генерируют исключение NotSupportedException, если коллекция доступна только для чтения. А поскольку интерфейс ICollection Благодаря тому что в интерфейсе ICollection Интерфейс IList В интерфейсе IList Таблица 25.11. Методы, определенные в интерфейсе IList Метод Описание int IndexOf(Т item) void Insert(int index, T item) void RemoveAt(int index) Возвращает индекс первого вхождения элемента item в вызывающей коллекции. Если элемент item не обнаружен, то метод возвращает значение ‑1 Вставляет в вызывающую коллекцию элемент item по индексу index Удаляет из вызывающей коллекции элемент, расположенный по указанному индексу index Кроме того, в интерфейсе IList Т this[int index] { get; set; } который устанавливает или возвращает значение элемента коллекции по указанному индексу index. Интерфейс IDictionary В интерфейсе IDictionary Таблица 25.12. Методы, определенные в интерфейсе IDictionaryCTKey, TValue> Метод Описание void Add(TKey key , TValue value\ bool Contains(TKey key) bool Remove(TKey key) bool TryGetValue(TKey key , out TValue value) Добавляет в вызывающую коллекцию пару “ключ‑значение”, определяемую параметрами key и value. Генерирует исключение ArgumentException, если ключ key уже находится в коллекции Возвращает логическое значение true, если вызывающая коллекция содержит элемент key в качестве ключа, а иначе – логическое значение false Удаляет из коллекции элемент, ключ которого равен значению key Предпринимает попытку извлечь значение из коллекции по указанному ключу key и присвоить это значение переменной value. При удачном исходе операции возвращается логическое значение true, а иначе – логическое значение false. Если ключ key не найден, переменной value присваивается значение, выбираемое по умолчанию Кроме того, в интерфейсе IDictionary Свойство Описание ICollection Keys Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойств Keys и Values. И наконец, в интерфейсе IDictionary TValue this[TKey key ] { get; set; } Этот индексатор служит для получения и установки значения элемента коллекции, а также для добавления в коллекцию нового элемента. Следует, однако, иметь в виду, что в качестве индекса в данном случае служит ключ элемента, а не сам индекс. Интерфейсы IEnumerable Интерфейсы IEnumerable В интерфейсе IEnumerable IEnumerator Этот метод возвращает перечислитель типа Т для коллекции. А это означает, что он возвращает типизированный перечислитель. Кроме того, в интерфейсе IEnumerable Т Current { get; } Это свойство возвращает ссылку типа Т на следующий объект. А это означает, что обобщенный вариант свойства Current является типизированным. Но между интерфейсами IEnumerator и IEnumerator ПРИМЕЧАНИЕ В интерфейсе lEnumerable Интерфейс IComparer Интерфейс IComparer<Т> является обобщенным вариантом рассмотренного ранее интерфейса IComparer. Главное отличие между ними заключается в том, что интерфейс IComparer int Compare(Т х, Т у) В этом методе сравниваются объекты х и у. Он возвращает положительное значение, если значение объекта х больше, чем у объекта у; отрицательное – если значение объекта х меньше, чем у объекта у; и нулевое значение – если сравниваемые значения равны. Интерфейс IEqualityComparer Интерфейс IEqualityComparer bool Equals(Т х, Т у) int GetHashCode(Т obj) Метод Equals () должен возвратить логическое значение true, если значения объектов х и у равны. А метод GetHashCode () возвращает хеш‑код для объекта obj. Если два сравниваемых объекта равны, то их хеш‑коды также должны быть одинаковы. Интерфейс ISet Интерфейс ISet Таблица 25.13. Методы, определенные в интерфейсе ISet Метод Описание void ExceptWith(Ienumerable Удаляет из вызывающего множества те элементы, other) которые содержатся в другом множестве other void После вызова этого метода вызывающее множе IntersectWith(IEnumerable ство содержит пересечение своих элементов с эле other) ментами другого множества other bool Возвращает логическое значение true, если вы IsProperSubsetOf(IEnumerable зывающее множество является правильным под other) множеством другого множества other , а иначе – логическое значение false bool IsProperSupersetOf(lEnumera возвращает логическое значение true, если вы ble зывающее множество является правильным надмножеством другого множества other, а иначе – логическое значение false bool IsSubsetOf(IEnumerable Возвращает логическое значение true, если вы other) зывающее множество является подмножеством другого множества other , а иначе – логическое значение false bool Возвращает логическое значение true, если вы IsSupersetOf(IEnumerable зывающее множество является надмножеством other) другого множества other, а иначе – логическое значение false bool Overlaps(IEnumerable Возвращает логическое значение true, если вы other) зывающее множество и другое множество other содержат хотя бы один общий элемент, а иначе – логическое значение false bool SetEquals(IEnumerable Возвращает логическое значение true, если все other) элементы вызывающего множества и другого множества other оказываются общими, а иначе –логическое значение false. Порядок расположения элементов не имеет значения, а дублирующиеся элементы во другом множестве other игнорируются void SymmetricExceptWith После вызова этого метода вызывающее множе (IEnumerable ство будет содержать симметрическую разность своих элементов и элементов другого множества other void UnionWith(IEnumerable После вызова этого метода вызывающее множе other) ство будет содержать объединение своих элементов и элементов другого множества other Структура KeyValuePair В пространстве имен System.Collections. Generic определена структура KeyValuePair public TKey Key { get; }; public TValue Value { get; }; В этих свойствах хранятся ключ и значение соответствующего элемента коллекции. Для построения объекта типа KeyValuePair public KeyValuePair(TKey key, TValue value) где key обозначает ключ, a value – значение. Классы обобщенных коллекций Как упоминалось ранее, классы обобщенных коллекций по большей части соответствуют своим необобщенным аналогам, хотя в некоторых случаях они носят другие имена. Отличаются они также своей организацией и функциональными возможностями. Классы обобщенных коллекций определяются в пространстве имен System. Collections . Generic. В табл. 25.14 приведены классы, рассматриваемые в этой главе. Эти классы составляют основу обобщенных коллекций. Таблица 25.14. Основные классы обобщенных коллекций Класс Описание Dictionary TValue> Сохраняет пары “ключ‑значение". Обеспечивает такие же функциональные возможности, как и необобщенный класс Hashtable HashSet Сохраняет ряд уникальных значений, используя хеш‑таблицу LinkedList Сохраняет элементы в двунаправленном списке List Создает динамический массив. Обеспечивает такие же функциональные возможности, как и необобщенный класс ArrayList Queue Создает очередь. Обеспечивает такие же функциональные возможности, как и необобщенный класс Queue SortedDictionary Создает отсортированный список из пар “ключ‑ TValue> значение" SortedList TValue> Создает отсортированный список из пар “ключ‑значение”. Обеспечивает такие же функциональные возможности, как и необобщенный класс SortedList SortedSet Создает отсортированное множество Stack Создает стек. Обеспечивает такие же функциональные возможности, как и необобщенный класс Stack ПРИМЕЧАНИЕ В пространстве имен System. Collections. Generic находятся также следующие классы: класс SynchronizedCollection Класс List В классе List public List() public List(IEnumerable Первый конструктор создает пустую коллекцию класса List с выбираемой по умолчанию первоначальной емкостью. Второй конструктор создает коллекцию типа List с количеством инициализируемых элементов, которое определяется параметром collection и равно первоначальной емкости массива. Третий конструктор создает коллекцию типа List, имеющую первоначальную емкость, задаваемую параметром capacity . В данном случае емкость обозначает размер базового массива, используемого для хранения элементов коллекции. Емкость коллекции, создаваемой в виде динамического массива, может увеличиваться автоматически по мере добавления в нее элементов. В классе List Таблица 25.15. Наиболее часто используемые методы, определенные в классе List Метод Описание public virtual void AddRange(Icollection ‑ collection) public virtual int BinarySearch(T item) Добавляет элементы из коллекции collection в конец вызывающей коллекции типа ArrayList Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован Метод Описание |