Может ли кто-нибудь подсказать мне, какой из способов сортировки / фильтрации наблюдаемой коллекции лучше всего вернуть и вернуть наблюдаемую коллекцию, а не IEnumerable?
Если результат сортировки / фильтрации равен IEnumerable<T>, вы можете просто создать еще один ObservableCollection и передать результат в качестве параметра конструктору
IEnumerable<T>
ObservableCollection
Смотри этот вопрос
Вероятно, для сортировки вы можете преобразовать его в список, а затем вызвать Sort (), предоставив делегат сравнения.Что-то вроде: -
my_collection.ToList (). Sort ((влево, вправо) => влево == вправо? 0: (влево> вправо? -1: 1));
Вы можете взглянуть на мою реализацию ObservableView, которая оборачивает наблюдаемую коллекцию (или другой список) и обеспечивает "живое" упорядочение и фильтрацию:
ObservableView
https://mytoolkit.codeplex.com/wikipage?title=ObservableView