【发布时间】:2017-10-10 15:30:53
【问题描述】:
我想知道是否有必要检查
订阅CollectionChanged 事件时,NotifyCollectionChangedEventArgs 的NotifyCollectionChangedAction 枚举。我偶然发现的每个例子都是这样的:
myCollection.CollectionChanged += (sender, eventArgs) =>
{
if (eventArgs.Action == NotifyCollectionChangedAction.Add)
{
foreach (SampleClass sampleObject in eventArgs.NewItems)
{
addAction(sampleObject);
}
}
else if (eventArgs.Action == NotifyCollectionChangedAction.Remove)
{
foreach (SampleClass sampleObject in eventArgs.OldItems)
{
removeAction(sampleObject);
}
}
// ...
};
是否可以忽略NotifyCollectionChangedAction 并像这样简化代码:
myCollection.CollectionChanged += (sender, eventArgs) =>
{
eventArgs.NewItems?.OfType<SampleClass>()
.ToList()
.ForEach(addAction);
eventArgs.OldItems?.OfType<SampleClass>()
.ToList()
.ForEach(removeAction);
};
这个想法有什么缺点?我有什么遗漏的吗?
【问题讨论】:
标签: c# .net events observablecollection inotifycollectionchanged