Ответ 1
Мне кажется, что вам нужно Enumerable.Except()
:
var differences = list1.Except(list2);
И затем вы можете перечеркнуть различия:
foreach(var difference in differences)
{
// work with each individual string here.
}
У меня есть два списка строк. Как получить список различных значений между ними или удалить элементы второго списка из первого списка?
List<string> list1 = { "see","you","live"}
List<string> list2 = { "see"}
Результат должен быть {"you","live"}
.
Мне кажется, что вам нужно Enumerable.Except()
:
var differences = list1.Except(list2);
И затем вы можете перечеркнуть различия:
foreach(var difference in differences)
{
// work with each individual string here.
}
Если вы хотите получать предметы из первого списка, кроме элементов во втором списке, используйте
list1.Except(list2)
Если вы хотите получить элементы, которые находятся в первом списке или во втором списке, но не оба, вы можете использовать
list1.Except(list2).Concat(list2.Except(list1))
Это хороший способ найти уникальное....
Уникальный из двух списков
var A = new List<int>() { 1,2,3,4 };
var B = new List<int>() { 1, 5, 6, 7 };
var a= A.Except(B).ToList();
// outputs List<int>(2) { 2,3,4 }
var b= B.Except(A).ToList();
// outputs List<int>(2) { 5,6,7 }
var abint= B.Intersect(A).ToList();
// outputs List<int>(2) { 1 }