显示从列表中删除的值

本文关键字:删除 列表 显示 | 更新日期: 2023-09-27 17:53:59

您好,我目前正在从列表中删除元素:

candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));

我想看看什么是实际被删除,所以我可以比较它与versionList后,看看为什么不是所有的值被删除。我知道这是因为版本列表是canadidateList的子列表,在删除所有数学不加起来。

显示从列表中删除的值

没有内置的方法来查看从列表中删除了哪些项。

如果您需要它进行调试-一个简单的方法是在调用.RemoveAll之前使用具有相同条件的.Where(...).ToList()并检查结果。

如果您在运行时需要这些信息,请考虑使用ObservableCollection<T>而不是常规列表,并听取"已删除"通知。

在你RemoveAll之前:

var removedList = candidateList.Where(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));

现在您有了要删除的内容列表,然后执行remove all:

candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));