显示从列表

时间:2016-06-30 17:13:32

标签: c# list removeall

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

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

我想查看实际删除的内容,以便我可以在使用versionList后对其进行比较,看看为什么不删除所有值。我知道这是因为版本列表是canadidateList的子列表,在删除之后数学不会加起来。

2 个答案:

答案 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>而不是常规列表,并收听“已删除”通知。