是否在向项目添加项目之前清除ObservableCollection?

时间:2016-04-19 19:05:42

标签: c# wpf performance

我经常需要过滤已经包含项目的ObservableCollection。哪种方法更好?

// Assigning the filtered result directly
FilteredObservableCol = FilteredCollectionCopy.Where(i=> i.Age > 25).ToObservableCollection();

// Clearing the collection first
FilteredObservableCol.Clear();
FilteredObservableCol = FilteredCollectionCopy.Where(i=> i.Age > 25).ToObservableCollection();

1 个答案:

答案 0 :(得分:2)

您可以使用CollectionViewSources而不是ObservableCollection来绑定。在那里你可以应用过滤。

ICollectionView MyCollection { get; private set; }

public void LoadData()
{
    var myObservable = //... load/create list
    MyCollection = CollectionViewSource.GetDefaultView(myObservable);
    MyCollection.Filter = item => ((TypeOfItem)item).Name = "bob";
}