Отображение значений, которые были удалены из списка
Здравствуйте, я в настоящее время удаляю элементы из списка, делая это:
candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));
Я хочу увидеть, что на самом деле удаляется, чтобы я мог сравнить его после с versionList, чтобы понять, почему не все значения удаляются. Я знаю это, потому что список версий является подсписком canadidateList, и после удаления все математические вычисления не складываются.
2 ответа
Не существует встроенного способа видеть, какие элементы удаляются из списка.
Если вам это нужно для отладки - одним из простых способов будет просто использовать .Where(...).ToList()
с тем же условием перед вызовом .RemoveAll
и проверить результат.
Если вам нужна эта информация во время выполнения, подумайте об использовании ObservableCollection<T>
вместо обычного списка и слушайте "удаленные" уведомления.
Перед тем как удалить все сделаем:
var removedList = candidateList.Where(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));
Теперь у вас есть список того, что будет удалено, затем выполните удаление всех:
candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));