您好我当前正在从列表中删除元素:
candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));
我想查看实际删除的内容,以便我可以在使用versionList后对其进行比较,看看为什么不删除所有值。我知道这是因为版本列表是canadidateList的子列表,在删除之后数学不会加起来。
答案 0 :(得分:2)
在你删除所有之前:
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));
答案 1 :(得分:2)
没有内置方法可以查看从列表中删除的项目。
如果您需要它进行调试 - 一种简单的方法是在调用.Where(...).ToList()
之前使用具有相同条件的.RemoveAll
并检查结果。
如果您在运行时需要该信息,请考虑使用ObservableCollection<T>
而不是常规列表,并收听“已删除”通知。