可观察的自定义集合 - 自我排序 - 防止插入等

时间:2013-06-29 15:59:47

标签: c# sorting collections observablecollection

我有一个知道如何与其他人比较的自定义类型(它实现了IComparable),它存储在ObservableList中很好。

然而,收藏中仍然缺少一些东西。我需要4个功能。一个集合:

  1. 检测重复项并阻止插入。
  2. 自动对每个成功的插页进行排序。
  3. 是可观察的&
  4. 如果插入了批量项目,则仅在批次生成后通知 插入。
  5. 我想知道如何制作这样的收藏品,我需要研究/实施的等等。我不是在寻找代码,但如果你能给它一个奖金。

    我一直在考虑做什么:

    继承ObservableCollection,覆盖add方法,检查该项是否已存在,是否忽略它。

    或者

    基于像List这样的更通用的类型实现我自己的可观察集合。

1 个答案:

答案 0 :(得分:0)

由于您要防止重复插入并且想要排序,SortedSet可能是一个很好的起始位置。由于您需要通知,因此您必须扩展标准的SortedSet并实施INotifyCollectionChangedINotifyPropertyChanged。有一个示例here和另一个here使用HashSet代替(这是无序的,但您可以轻松替换为SortedSet)。

同样有效的替代方案是先与您同意并延长ObservableCollection