Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
// Удалить всех из очереди.
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()
Queue
Dequeue()
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>
Начните с создания нового класса по имени
SortPeopleByAge
IComparer<T>
Т
Person
Compare()
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;
}
}
}
Теперь добавьте в класс
Program
SortedSet<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);
}