带有过滤器的ObservableCollection枚举器
本文关键字:枚举 ObservableCollection 过滤器 | 更新日期: 2023-09-27 18:05:25
我需要从一个可观察集合中过滤掉一些项目。之前,对于IEnumerable,我做的是:
private IEnumerable _myCollection {get; set;}
public IEnumerator<MyType> GetEnumerator()
{
var filteredType = _myColletion.Where(t => t.MyProperty.State != States.NeedsDelete);
return filteredType.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
我现在使用的是ObservableCollection
。我该如何实现同样的东西呢?
编辑(上下文):
我正在跟踪一些实体,在内存中处理它们,我的想法是,最后,我把这些实体推回web服务。可观察对象集合中的每个对象都有一个状态,比如"NeedsCreate"、"NeedsDelete"、"NeedsUpdate"或"Unchanged"。然后,我将遍历这些状态,并调用适当的web服务来同步这些更改。
ObservalbeCollection继承自Collection,继承自IEnumerable。"完全相同的方式"应该是:
var collection = new ObservableCollection<Type>();
public IEnumerator<Type> GetEnumerator() {
return collection
.Where(i => i.Property.State != States.NeedsDelete)
.GetEnumerator();
}
也许我理解错了。这就是你想要达到的目标吗?