C# 可观察收集<;T>;初始化新实例或删除并添加

C# 可观察收集<;T>;初始化新实例或删除并添加,c#,observablecollection,C#,Observablecollection,我有一个绑定到某个数据网格的ObservableCollection。在某些情况下,当我通过单击按钮调用某个命令时,我需要从集合中删除所有元素并添加一个新元素(可能有一些元素,但也有很多元素,可能不超过1000个)。进行此操作时,是否最好使用新值初始化ObservableCollection的新实例,类似于这样(警告-这样需要调用PropertyChanged事件): 我这样问是因为速度效应和内存量,在案例中有很多元素时会被消耗。一般规则是在需要优化之前不要担心优化。据我所知,你现在不是在与任何

我有一个绑定到某个数据网格的ObservableCollection。在某些情况下,当我通过单击按钮调用某个命令时,我需要从集合中删除所有元素并添加一个新元素(可能有一些元素,但也有很多元素,可能不超过1000个)。进行此操作时,是否最好使用新值初始化ObservableCollection的新实例,类似于这样(警告-这样需要调用PropertyChanged事件):


我这样问是因为速度效应和内存量,在案例中有很多元素时会被消耗。

一般规则是在需要优化之前不要担心优化。据我所知,你现在不是在与任何问题作斗争,而是在问什么是最佳做法?在这种情况下,为什么不使用最简单、最直接的方法呢?您可能可以从
ItemsSource
@DenisG.Labrecque中分离临时集合是的,我只是想寻求最佳实践。我刚刚对整数类型做了一个小测试,初始化一个新实例的速度大约快5倍(而且更简单)。内存消耗只是个问题。但由于我的整个应用程序只使用了120MB内存,我可能会坚持使用它。@JeroenvanLangen我觉得这没什么用,因为我使用的是MVVM模式。如果我没有弄错的话,就无法从viewModel访问视图
collection = new ObservableCollection<T>(newValues);
collection.Clear();
foreach (T value in newValues)
{
    collection .Add(value );
}