Язык программирования C#9 и платформа .NET5. Страница 206
First Names: LisaFirst Names: BartВ классе
List<T>Stack<T>Queue<T>SortedSet<T>Работа с классом Stack<T>
Класс
Stack<T>Stack<T>Push()Pop()Personstatic void UseGenericStack(){ Stack<Person> stackOfPeople = new(); stackOfPeople.Push(new Person { FirstName = "Homer", LastName = "Simpson", Age = 47 }); stackOfPeople.Push(new Person { FirstName = "Marge", LastName = "Simpson", Age = 45 }); stackOfPeople.Push(new Person { FirstName = "Lisa", LastName = "Simpson", Age = 9 });<b> // Просмотреть верхний элемент, вытолкнуть его и просмотреть снова..</b> Console.WriteLine("First person is: {0}", stackOfPeople.Peek()); Console.WriteLine("Popped off {0}", stackOfPeople.Pop()); Console.WriteLine("\nFirst person is: {0}", stackOfPeople.Peek()); Console.WriteLine("Popped off {0}", stackOfPeople.Pop()); Console.WriteLine("\nFirst person item is: {0}", stackOfPeople.Peek()); Console.WriteLine("Popped off {0}", stackOfPeople.Pop()); try { Console.WriteLine("\nnFirst person is: {0}", stackOfPeople.Peek()); Console.WriteLine("Popped off {0}", stackOfPeople.Pop()); } catch (InvalidOperationException ex) { Console.WriteLine("\nError! {0}", ex.Message); // Ошибка! Стек пуст }}В коде строится стек, который содержит информацию о трех лицах, добавленных в алфавитном порядке следования их имен:
HomerMargeLisaРеек()Реек()PersonPop()Peek()Реек()Pop()***** Fun with Generic Collections *****First person is: Name: Lisa Simpson, Age: 9Popped off Name: Lisa Simpson, Age: 9First person is: Name: Marge Simpson, Age: 45Popped off Name: Marge Simpson, Age: 45First person item is: Name: Homer Simpson, Age: 47Popped off Name: Homer Simpson, Age: 47Error! Stack empty.Работа с классом Queue<T>
Очереди — это контейнеры, которые обеспечивают доступ к элементам в стиле "первый вошел — первый вышел" (FIFO). К сожалению, людям приходится сталкиваться с очередями практически ежедневно: в банке, в супермаркете, в кафе. Когда нужно смоделировать сценарий, в котором элементы обрабатываются в режиме FIFO, класс
Queue<T>Queue
Теперь давайте посмотрим на описанные методы в работе. Можно снова задействовать класс
PersonQueue<T>static void UseGenericQueue(){ // Создать очередь из трех человек. Queue<Person> peopleQ = new(); peopleQ.Enqueue(new Person {FirstName= "Homer", LastName="Simpson", Age=47}); peopleQ.Enqueue(new Person {FirstName= "Marge", LastName="Simpson", Age=45}); peopleQ.Enqueue(new Person {FirstName= "Lisa", LastName="Simpson", Age=9}); // Заглянуть, кто первый в очереди. Console.WriteLine("{0} is first in line!", peopleQ.Peek().FirstName);
Перейти на страницу:
Изменить размер шрифта: