C#:是否从ObservableCollection中删除事件?

C#:是否从ObservableCollection中删除事件?,c#,observablecollection,C#,Observablecollection,我有一个ObsableCollection,其中包含实现INotifyPropertyChanged接口的项。 我就是这样创建它的: var myCollection = new ObservableCollection<MyViewModel>(); myCollection.CollectionChanged += OnCollectionChanged; 现在我的问题是,在进行另一项操作之前,我需要遍历所有项并删除“myViewModelPro

我有一个ObsableCollection,其中包含实现INotifyPropertyChanged接口的项。 我就是这样创建它的:

        var myCollection = new ObservableCollection<MyViewModel>();
        myCollection.CollectionChanged += OnCollectionChanged;
现在我的问题是,在进行另一项操作之前,我需要遍历所有项并删除“myViewModelPropertyChanged”

myCollection = new ObservableCollection<MyViewModel>();
myCollection=新的ObservableCollection();
或者这是自动发生的?那一个呢 myCollection.Clear()

谢谢你的意见

干杯
约瑟夫

我认为这是我的收藏;或者在旧的myCollection上创建一个新的myCollection不会取消事件集合对象的链接,然后我会进行迭代

我认为myCollection.Clear();或者在旧的myCollection上创建一个新的myCollection,它不会取消事件集合对象的链接,如果我理解正确,我会进行迭代, 您有一个对象集合。对于每个对象,您都订阅了一些成员事件。现在,您的对象具有对处理程序函数的引用

清除集合时,如果没有其他人引用成员对象,则不需要显式取消订阅。对象将被垃圾回收。
当发布服务器超过订阅服务器时会出现问题,在这种情况下,由于事件处理程序/委托引用,它会使订阅服务器保持活动状态。e、 g.如果您将发布服务器存储在静态字段中,如果您没有明确取消订阅,则GC将不会收集订阅服务器

另请参见:和其他相关问题。

如果我理解正确, 您有一个对象集合。对于每个对象,您都订阅了一些成员事件。现在,您的对象具有对处理程序函数的引用

清除集合时,如果没有其他人引用成员对象,则不需要显式取消订阅。对象将被垃圾回收。
当发布服务器超过订阅服务器时会出现问题,在这种情况下,由于事件处理程序/委托引用,它会使订阅服务器保持活动状态。e、 g.如果您将发布服务器存储在静态字段中,如果您没有明确取消订阅,则GC将不会收集订阅服务器

另见:和其他相关问题

myCollection = new ObservableCollection<MyViewModel>();