Читаем C# 4.0: полное руководство полностью

// Продемонстрировать применение класса обобщенной

// коллекции SortedList.

using System;

using System.Collections.Generic;


class GenSLDemo {

  static void Main() {

    // Создать коллекцию в виде отсортированного списка

    // для хранения имен и фамилий работников и их зарплаты.

    SortedList sl =

         new SortedList();


    // Добавить элементы в коллекцию,

    sl.Add("Батлер, Джон", 73000);

    sl.Add("Шварц, Capa", 59000);

    sl.Add("Пайк, Томас", 45000);

    sl.Add("Фрэнк, Эд", 99000);


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

    ICollection с = sl.Keys;


    // Использовать ключи для получения значений, т.е. зарплаты,

    foreach(string str in с)

      Console.WriteLine("{0}, зарплата: {1:C}", str, sl[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 определяются следующие конструкторы.


public Stack()

public Stack(int capacity)

public Stack(IEnumerable collection)


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

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


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

Метод - Описание


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

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

public void Push(Titem) - Помещает элемент item в стек

Public T[] ToArray() - Возвращает массив, содержащий копии элементов вызывающего стека

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


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


// Продемонстрировать применение класса Stack.

using System;

using System.Collections.Generic;


class GenStackDemo {

  static void Main() {

    Stack st = new Stack();


    st.Push("один");

    st.Push("два");

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных