Jus*_*ner 8 .net generics collections binary-tree
所以,我只是在Reflector周围试图找到HashSet的实现细节(基于这里的另一个问题的答案纯粹的好奇心)并注意到以下内容:
internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
IEnumerable, ISerializable, IDeserializationCallback
Run Code Online (Sandbox Code Playgroud)
在不深入细节的情况下,它看起来像一个自平衡二进制搜索树.
我的问题是,有没有人知道为什么这堂课internal?仅仅因为其他集合类型在内部使用它并隐藏了BST与普通群众的复杂性......还是我离开了基地?
Jon*_*eet 10
公开暴露一种类型涉及的工作多于仅在内部公开它 - 这意味着你必须绝对确定你以后不想对API做出重大改变,你必须彻底记录它等等.
TreeSet<T>在未来的版本中找到一个暴露,我不会感到惊讶,但是在公开宣传之前让MS谨慎是有道理的.
(我相信SortedSet<T>在.NET 4中基本上是一个树集,顺便说一下.)