books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

First Names: Lisa

First Names: Bart

В классе

List<T>
определено множество дополнительных членов, представляющих интерес, поэтому за полным их описанием обращайтесь в документацию. Давайте рассмотрим еще несколько обобщенных коллекций, в частности
Stack<T>
,
Queue<T>
и
SortedSet<T>
, что должно способствовать лучшему пониманию основных вариантов хранения данных в приложении.

Работа с классом Stack<T>

Класс

Stack&lt;T&gt;
представляет коллекцию элементов, которая обслуживает элементы в стиле "последний вошел — первый вышел" (LIFO). Как и можно было ожидать, в
Stack&lt;T&gt;
определены члены
Push()
и
Pop()
, предназначенные для вставки и удаления элементов из стека. Приведенный ниже метод создает стек объектов
Person
:

static void UseGenericStack()

{

  Stack&lt;Person&gt; stackOfPeople = new();

  stackOfPeople.Push(new Person { FirstName = &quot;Homer&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 47 });

  stackOfPeople.Push(new Person { FirstName = &quot;Marge&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 45 });

  stackOfPeople.Push(new Person { FirstName = &quot;Lisa&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 9 });

<b>  // Просмотреть верхний элемент, вытолкнуть его и просмотреть снова..</b>

  Console.WriteLine(&quot;First person is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  Console.WriteLine(&quot;nFirst person is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  Console.WriteLine(&quot;nFirst person item is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  try

  {

    Console.WriteLine(&quot;nnFirst person is: {0}&quot;, stackOfPeople.Peek());

    Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  }

  catch (InvalidOperationException ex)

  {

    Console.WriteLine(&quot;nError! {0}&quot;, ex.Message);  // Ошибка! Стек пуст

  }

}

В коде строится стек, который содержит информацию о трех лицах, добавленных в алфавитном порядке следования их имен:

Homer
,
Marge
и
Lisa
. Заглядывая (посредством метода
Реек()
) в стек, вы будете всегда видеть объект, находящийся на его вершине; следовательно, первый вызов
Реек()
возвращает третий объект
Person
. После серии вызовов
Pop()
и
Peek()
стек, в конце концов, опустошается, после чего дополнительные вызовы
Реек()
и
Pop()
приводят к генерации системного исключения. Вот как выглядит вывод:

***** Fun with Generic Collections *****

First person is: Name: Lisa Simpson, Age: 9

Popped off Name: Lisa Simpson, Age: 9

First person is: Name: Marge Simpson, Age: 45

Popped off Name: Marge Simpson, Age: 45

First person item is: Name: Homer Simpson, Age: 47

Popped off Name: Homer Simpson, Age: 47

Error! Stack empty.

Работа с классом Queue<T>

Очереди — это контейнеры, которые обеспечивают доступ к элементам в стиле "первый вошел — первый вышел" (FIFO). К сожалению, людям приходится сталкиваться с очередями практически ежедневно: в банке, в супермаркете, в кафе. Когда нужно смоделировать сценарий, в котором элементы обрабатываются в режиме FIFO, класс

Queue&lt;T&gt;
подходит наилучшим образом. Дополнительно к функциональности, предоставляемой поддерживаемыми интерфейсами, в
Queue
определены основные члены, перечисленные в табл. 10.6.

Язык программирования C#9 и платформа .NET5 - _077.png

Теперь давайте посмотрим на описанные методы в работе. Можно снова задействовать класс

Person
и построить объект
Queue&lt;T&gt;
, эмулирующий очередь людей, которые ожидают заказанный кофе.

static void UseGenericQueue()

{

  // Создать очередь из трех человек.

  Queue&lt;Person&gt; peopleQ = new();

  peopleQ.Enqueue(new Person {FirstName= &quot;Homer&quot;, LastName=&quot;Simpson&quot;, Age=47});

  peopleQ.Enqueue(new Person {FirstName= &quot;Marge&quot;, LastName=&quot;Simpson&quot;, Age=45});

  peopleQ.Enqueue(new Person {FirstName= &quot;Lisa&quot;, LastName=&quot;Simpson&quot;, Age=9});

  // Заглянуть, кто первый в очереди.

  Console.WriteLine(&quot;{0} is first in line!&quot;, peopleQ.Peek().FirstName);

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

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*