// Допустим у нас есть 2 списка с данными и 1 список для хранения результата
List<string> list_A = new List<string>(); // Первый
List<string> list_B = new List<string>(); // Второй
List<string> list_C = new List<string>(); // результат
// Заполняю первый список демо данными
list_A.Add("ZennoLab");
list_A.Add("ZennoPoster");
list_A.Add("CapMonster2");
list_A.Add("user");
// Заполняю второй список демо данными
list_B.Add("ZennoLab");
list_B.Add("ZennoPoster");
list_B.Add("CapMonster2");
list_B.Add("admin");
// 1. Получить список из элементов первого списка, кроме элементов, которые содержатся во втором списке.
// Это разность списков
project.SendWarningToLog("Разность списков",true);
list_C = list_A.Except(list_B).ToList(); // Получить разность списков
list_C.ForEach(x=>project.SendInfoToLog(x)); // Вывожу в лог результат
list_C.Clear(); // очистка списка
// 2. Получить список элементов, которые находятся в первом и во втором списке
// Это пересечение списков
project.SendWarningToLog("Пересечение списков",true);
list_C = list_A.Intersect(list_B).ToList(); // Получить пересечение списков
list_C.ForEach(x=>project.SendInfoToLog(x)); // Вывожу в лог результат
list_C.Clear(); // очистка списка
// 3. Получить список из уникальных элементов двух списков
// Это Объединение списков с удалением дублей
project.SendWarningToLog("Объединение списков с удалением дублей",true);
list_C = list_A.Union(list_B).ToList(); // Объединение списков с удалением дублей
list_C.ForEach(x=>project.SendInfoToLog(x)); // Вывожу в лог результат
list_C.Clear(); // очистка списка
// 4. Получить список из элементов двух списков (без удаления дублей)
// Это Объединение списков без удаления дублей
project.SendWarningToLog("Объединение списков без удаления дублей",true);
list_C = list_A.Concat(list_B).ToList(); // Объединение списков без удаления дублей
list_C.ForEach(x=>project.SendInfoToLog(x)); // Вывожу в лог результат
list_C.Clear(); // очистка списка