显示从列表中删除的值
Displaying values that were removed from list
您好,我目前正在从列表中删除元素:
candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));
我想看看实际删除了什么,这样我就可以将它与 versionList 进行比较,看看为什么没有删除所有值。我知道这一点,因为版本列表是 canadidateList 的子列表,并且在 removeall 之后数学不加起来。
在 RemoveAll 之前做:
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));
没有内置方法可以查看从列表中删除了哪些项目。
如果您需要它进行调试 - 一种简单的方法是在调用 .RemoveAll
之前使用具有相同条件的 .Where(...).ToList()
并检查结果。
如果您在 运行 时需要该信息,请考虑使用 ObservableCollection<T>
而不是常规列表并收听 "removed" 通知。
您好,我目前正在从列表中删除元素:
candidateList.RemoveAll(x => versionslist.Any(y => y.Name == x.Name && y.Parent.Name == x.Parent.Name));
我想看看实际删除了什么,这样我就可以将它与 versionList 进行比较,看看为什么没有删除所有值。我知道这一点,因为版本列表是 canadidateList 的子列表,并且在 removeall 之后数学不加起来。
在 RemoveAll 之前做:
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));
没有内置方法可以查看从列表中删除了哪些项目。
如果您需要它进行调试 - 一种简单的方法是在调用 .RemoveAll
之前使用具有相同条件的 .Where(...).ToList()
并检查结果。
如果您在 运行 时需要该信息,请考虑使用 ObservableCollection<T>
而不是常规列表并收听 "removed" 通知。