【发布时间】:2011-12-22 16:38:47
【问题描述】:
我有一个ObservableCollection 的项目绑定到我的视图中的列表控件。
我有一种情况,我需要在集合的开头添加一大块值。
Collection<T>.Insert 文档将每个插入指定为 O(n) 操作,并且每个插入还会生成一个CollectionChanged 通知。
因此,理想情况下,我希望一次插入整个项目范围,这意味着只对基础列表进行一次随机播放,并希望有一个 CollectionChanged 通知(可能是“重置”)。
Collection<T> 没有公开任何这样做的方法。 List<T> 具有 InsertRange(),但 IList<T>,Collection<T> 通过其 Items 属性公开却没有。
有没有办法做到这一点?
【问题讨论】:
-
如果您有集合属性的支持字段 - 您可以为其分配一个新实例,然后手动提高
OnPropertyChanged以获取集合属性 -
+1 如果
ObservableCollection让你想到量子力学和双缝实验。
标签: c# performance collections insert observablecollection