Приклад 3.
Створимо клас Person для з властивостями Name, Rating.
class Person
{
public string Name { get; set; }
public int Rating { get; set; }
}
Створимо 2 множини для студентів двох груп, потім об’єднаємо ці множини.
static void Main(string[] args)
{
//створити 2 множини об'єктів
//
HashSet<Person> pi_71 = new HashSet<Person>();
pi_71.Add(new Person { Name = "Іванов", Rating = 60 });
pi_71.Add(new Person { Name = "Лазаренко", Rating = 65 });
pi_71.Add(new Person { Name = "Правдивий", Rating = 95 });
//
HashSet<Person> k_71 = new HashSet<Person>();
k_71.Add(new Person { Name = "Іванов", Rating = 60 });
k_71.Add(new Person { Name = "Митюк", Rating = 65 });
k_71.Add(new Person { Name = "Юшков", Rating = 10 });
//
HashSet<Person> union_group = new HashSet<Person>(pi_71);
union_group.UnionWith(k_71);
DisplaySet("Група ПІ-71", pi_71);
DisplaySet("Група K-71", k_71);
DisplaySet("Групи К,ПІ-71", union_group);
Console.ReadKey();
}
static void DisplaySet(string Message,HashSet<Person> set)
{
Console.WriteLine(Message);
foreach (Person pers in set)
{
Console.WriteLine(" {0}, {1}", pers.Name,pers.Rating);
}
}
}
Результат:
2.2. Клас SortedSet<T>
Клас SortedSet<T> представляє множину відсортованих елементів. Цей клас зручно застосовувати, якщо потрібно швидко відсортувати елементи, а також отримати відсортований результат операцій з множинами. Властивості і методи цього класу практично співпадають з властивостями і методами класу HashSet.
Приклад 4. Демонструє операції з відсортованими множинами
static void Main()
{
// Створення двох множин
SortedSet<char> ss = new SortedSet<char>();
SortedSet<char> ss1 = new SortedSet<char>();
ss.Add('A');
ss.Add('B');
ss.Add('C');
ss.Add('Z');
ShowColl(ss, "Перша колекція: ");
ss1.Add('X');
ss1.Add('Y');
ss1.Add('Z');
ShowColl(ss1, "Друга колекція");
ss.SymmetricExceptWith(ss1);
ShowColl(ss, "Виключення однакових елементів двох множин (симетрична різниця): ");
ss.UnionWith(ss1);
ShowColl(ss, "Об'єднання множин: ");
ss.ExceptWith(ss1);
ShowColl(ss, "Віднімання множин");
Console.ReadLine();
}
static void ShowColl(SortedSet<char> ss, string s)
{
Console.WriteLine(s);
foreach (char ch in ss)
Console.Write(ch + " ");
Console.WriteLine("\n");
}
}