Есть два списка List
Я пытаюсь реализовать это так, но условие не работает и на выходе список пустой.
List
Реализовал это так, но не горел желанием форы использовать, хотелось бы разобраться почему не работал первый вариант.
for (byte i = 0; i < list2.Count; ++i)
for (byte j = 0; j < list1.Count; ++j)
{
if (list2[i].SequenceEqual(list1[j]))
list3.Add(list2[i]);
}
Ответ
Первый вариант не работал потому, что Contains сравнивает через Equals, а равенство по Equals для массивов есть равенство ссылок. А вам ведь нужно SequenceEqual вместо этого.
Поэтому можно написать свой вариант Contains
x => !list1.Any(y => y.SequenceEqual(x))
Комментариев нет:
Отправить комментарий