我需要从可观察的集合中过滤掉一些项目。以前,使用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服务来同步这些更改。
答案 0 :(得分:0)
一个ObservalbeCollection确实从一个集合继承而来自IEnumerable。 “完全相同的方式”将是:
var collection = new ObservableCollection<Type>();
public IEnumerator<Type> GetEnumerator() {
return collection
.Where(i => i.Property.State != States.NeedsDelete)
.GetEnumerator();
}
也许我正在以错误的方式解释。这是你想要实现的目标吗?