检查一个项是否存在于observable集合中

本文关键字:存在 observable 集合 是否 一个 检查 | 更新日期: 2023-09-27 17:49:00

我有一个动态填充的可观察集合。我通过一个名为events的项目列表填充它。在某些情况下,事件可以从事件列表中删除,当这种情况发生时,我也需要从可观察集合中删除它。

我正在寻找的是一个简单而快速的方法来做到这一点。我尝试了以下操作:

 bool exist = events.Where(x => x.Home == obCollection[x].Home).Any();

但是我不能通过x元素访问obCollection,因为我需要一个索引,而x是实际的项。我需要修复这个问题以生成正确的元素,然后我需要删除可观察集合中剩余的元素。

检查一个项是否存在于observable集合中

对不起,第一个答案是相反的。

所以你需要从ObservableCollection中删除自动从events列表中删除的内容:

var notFoundInEvents = obCollection.Where(x => !(events.Any(o => o.Home == x.Home))).ToList();
foreach (var toBeRemoved in notFoundInEvents)
{
    obCollection.Remove(toBeRemoved);
}