2015-07-30 3 views
0

Мне нужно отфильтровать некоторые элементы из наблюдаемой коллекции. Ранее, с IEnumerable, я делал:ObservableCollection Enumerator с фильтром

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. Как мне реализовать одно и то же?

Edit (Context):

Я отслеживании некоторых лиц, работающих с ними в памяти, и идея заключается в том, что, в конце концов, я нажимаю эти объекты обратно на веб-службы. Каждый объект в наблюдаемой коллекции будет иметь состояние, такое как «NeedsCreate», «NeedsDelete», «NeedsUpdate» или Unchanged. Затем я пройду через каждое из этих состояний и вызову соответствующий веб-сервис, чтобы синхронизировать эти изменения.

+1

Некоторая контекстная информация необходима, например, как/где это будет использоваться. 'ObservableCollection ' реализует 'IEnumerable ', но похоже, что вы знаете об этом и хотите что-то еще. – Dennis

+0

Хорошо, я отредактирую вопрос – David

+0

@David То же самое относится к 'ObservableCollection '. Почему бы просто не вернуть его «GetEnumerator»? –

ответ

0

Ну, ObservalbeCollection действительно наследует от коллекции и т. Д. От IEnumerable. «Точно такой же способ» будет:

var collection = new ObservableCollection<Type>(); 
public IEnumerator<Type> GetEnumerator() { 
    return collection 
     .Where(i => i.Property.State != States.NeedsDelete) 
     .GetEnumerator(); 
} 

Возможно, я интерпретирую неправильный путь. Это то, чего вы пытаетесь достичь?

+0

Не является ли GetEnumerator уже реализованным ObservableCollection? – David

+0

Конечно, это так, но ваша цель - добавить фильтр в коллекцию, прежде чем вы вызовете метод ** GetEnumerator **. Прямой вызов доставит вам все записи –

 Смежные вопросы

  • Нет связанных вопросов^_^