Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Индексатор, определенный в интерфейсе IDictionaryCTKey, TValueX




 

public TValue this[TKey key ] { get; set;

 

}.

 

Этот индексатор служит для получения и

 

Установки значения элемента коллекции,

 

А также для добавления в коллекцию нового элемента. Но в данном случае в качестве

 

Индекса служит ключ элемента, а не сам индекс.

 

В приведенном ниже примере демонстрируется применение класса

 

SortedList<TKey, TValueX Это еще один измененный вариант представленного

 

ранее примера базы данных работников. В данном варианте база данных хранится в коллекции типа SortedList.

// Продемонстрировать применение класса обобщенной // коллекции SortedList<TKey, TValue>.

Using System;

Using System.Collections.Generic;

class GenSLDemo {

static void Main() {

// Создать коллекцию в виде отсортированного списка // для хранения имен и фамилий работников и их зарплаты.

SortedList<string, double> si =

new SortedList<string, double>();

// Добавить элементы в коллекцию, si.Add("Батлер, Джон", 73000); si.Add("Шварц, Capa", 59000); si.Add("Пайк, Томас", 45000); si.Add("Фрэнк, Эд", 99000);

// Получить коллекцию ключей, т.е. фамилий и имен.

ICollection<string> с = 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<T>

Класс Stack<T> является обобщенным эквивалентом класса необобщенной коллекции Stack. В нем поддерживается стек в виде списка, действующего по принципу "первым пришел — последним обслужен". В этом классе реализуются интерфейсы Collection, IEnumerable и IEnumerable<T>. Кроме того, в классе Stack<T> непосредственно реализуются методы Clear(),Contains() иСоруТоО, определенные в интерфейсе ICollection<T>. А методы Add () и Remove () в этом классе не поддерживаются, как, впрочем, и свойство IsReadOnly. Коллекция класса Stack<T> имеет динамический характер, расширяясь по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться. В классе Stack<T> определяются следующие конструкторы.

Public Stack()

public Stack(int capacity)

public Stack(IEnumerable<T> collection)

В первой форме конструктора создается пустой стек с выбираемой по умолчанию первоначальной емкостью, а во второй форме — пустой стек, первоначальный размер которого определяет параметр capaci ty. И в третьей форме создается стек, содержащий элементы коллекции, определяемой параметром collection. Его первоначальная емкость равна количеству указанных элементов.

В классе Stack<T> определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются, а также в интерфейсе ICollection<T>. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.20. Как и в классе Stack, эти методы обычно применяются следующим образом. Для того чтобы поместить объект на вершине стека, вызывается метод Push (). А для того чтобы извлечь и удалить объект из вершины стека, вызывается метод Pop (). Если же объект требуется только извлечь, но не удалить из вершины стека, то вызывается метод Реек (). А если вызвать метод Pop () или Реек (), когда вызывающий стек пуст, то сгенерируется исключение InvalidOperationException.

Таблица 25.20. Методы, определенные в классе Stack<T>

 

Метод

 

Описание

 

Public

 

T Peek()

 

Возвращает элемент, находящийся на вершине стека, но не удаляет его

 

Public

 

T Pop()

 

Возвращает элемент, находящийся на вершине стека, удаляя его в процессе работы

 

Public

 

void Push(T item)

 

Помещает элемент i tern в стек

 

Public

 

T[] ToArrayO

 

Возвращает массив, содержащий копии элементов вызывающего стека

 

Public

 

Void TrimExcessO

 

Сокращает избыточную емкость вызывающей коллекции в виде стека

 

В приведенном ниже примере программы демонстрируется применение класса Stack<T>.

// Продемонстрировать применение класса Stack<T>. using System;





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 429 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2294 - | 2147 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.014 с.