Объединение, пересечение и разность списков в один - C#
Формулировка задачи:
Добрый день!
Подскажите ,пожалуйста, очень нужно!!!!! возможно ли реализовать следующую работу со списками. Я ввожу два списка(причем списки имеют свои подсписки), в результате должна получить новый список, выполняющий объединение, пересечение и разность этих списков в один(объединение,пересечение и разность происходит на каждом уровне) Например, список 1: ( a s d ( f g 1 2 ( h ))), список 2: ( d f ( f g 1 ) ), в результате получаю: объединение (a s d f ( f g 1 2 ) (h))
пересечение : ( f (f g 1))
разность (a s (2 (h) ) )
Решение задачи: «Объединение, пересечение и разность списков в один»
textual
Листинг программы
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");
}