Язык программирования C#9 и платформа .NET5. Страница 207
// Удалить всех из очереди. GetCoffee(peopleQ.Dequeue()); GetCoffee(peopleQ.Dequeue()); GetCoffee(peopleQ.Dequeue()); // Попробовать извлечь кого-то из очереди снова try { GetCoffee(peopleQ.Dequeue()); } catch(InvalidOperationException e) { Console.WriteLine("Error! {0}", e.Message); //Ошибка! Очередь пуста. } // Локальная вспомогательная функция static void GetCoffee(Person p) { Console.WriteLine("{0} got coffee!", p.FirstName); }}Здесь с применением метода
Enqueue()Queue<T>Peek()QueueDequeue()GetCoffee()UseGenericQueue()***** Fun with Generic Collections *****Homer is first in line!Homer got coffee!Marge got coffee!Lisa got coffee!Error! Queue empty.Работа с классом SortedSet<T>
Класс
SortedSet<T>SortedSet<T>IComparer<T>Начните с создания нового класса по имени
SortPeopleByAgeIComparer<T>ТPersonCompare()using System.Collections.Generic;namespace FunWithGenericCollections{ class SortPeopleByAge : IComparer<Person> { public int Compare(Person firstPerson, Person secondPerson) { if (firstPerson?.Age > secondPerson?.Age) { return 1; } if (firstPerson?.Age < secondPerson?.Age) { return -1; } return 0; } }}Теперь добавьте в класс
ProgramSortedSet<Person>static void UseSortedSet(){<b> // Создать несколько объектов Person с разными значениями возраста.</b> SortedSet<Person> setOfPeople = new SortedSet<Person>(new SortPeopleByAge()) { new Person {FirstName= "Homer", LastName="Simpson", Age=47}, new Person {FirstName= "Marge", LastName="Simpson", Age=45}, new Person {FirstName= "Lisa", LastName="Simpson", Age=9}, new Person {FirstName= "Bart", LastName="Simpson", Age=8} };<b> // Обратите внимание, что элементы отсортированы по возрасту.</b> foreach (Person p in setOfPeople) { Console.WriteLine(p); } Console.WriteLine();<b> // Добавить еще несколько объектов Person с разными значениями возраста.</b> setOfPeople.Add(new Person { FirstName = "Saku", LastName = "Jones", Age = 1 }); setOfPeople.Add(new Person { FirstName = "Mikko", LastName = "Jones", Age = 32 });<b> // Элементы по-прежнему отсортированы по возрасту.</b> foreach (Person p in setOfPeople) { Console.WriteLine(p); }
Перейти на страницу:
Изменить размер шрифта: