所以,我只是在Reflector周围试图找到HashSet的实现细节(基于对这里另一个问题的答案纯粹的好奇心)并注意到以下内容:
internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
IEnumerable, ISerializable, IDeserializationCallback
如果不深入细节,它看起来像是一个自平衡二进制搜索树。
我的问题是,有没有人知道为什么这个班级是internal
?仅仅是因为其他集合类型在内部使用它并隐藏了BST与普通群众的复杂性......还是我离开了基地?
答案 0 :(得分:10)
公开公开类型涉及的工作远远多于仅在内部公开 - 这意味着您必须绝对确定您以后不希望对API进行重大更改,您必须将其记录下来彻底等等。
在将来的版本中发现TreeSet<T>
时,我不会感到惊讶,但MS在公开宣传之前要谨慎行事。
(我相信.NET 4中的SortedSet<T>
基本上是一个树集,顺便说一句。)