Итак, я просто копался в Reflector, пытаясь найти детали реализации HashSet (из чистого любопытства, основанного на ответе на другой вопрос здесь) и заметил следующее:
internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
IEnumerable, ISerializable, IDeserializationCallback
Не слишком углубляясь в детали, оно выглядит как самобалансирующееся дерево двоичного поиска.
У меня вопрос, есть ли кто-нибудь, кто понимает, почему этот класс internal
? Это просто потому, что другие типы коллекций используют его внутренне и скрывают сложности BST от общих масс ... или я далеко от базы?