2010-07-29 3 views
0

Возможно, я просто что-то упустил, но класс HashSet (Of T) имеет метод TrimExcess, но нет общедоступного способа узнать текущую емкость экземпляра. Есть ли способ, которым я слишком плотный, чтобы найти?Есть ли способ получить текущую емкость HashSet?

+0

Это не публично, поэтому для его выучивания понадобилось некоторое волшебство отражения. Просто любопытно, зачем вам это знать? – kbrimington

+0

@kbrimington: В основном из любопытства, действительно. Список (Of T) имеет общественное свойство для получения Capacity, поэтому я подумал, что это странно, что HashSet этого не делает. – rossisdead

+1

@rossisdead: достаточно справедливо. Я никогда не нуждался в этом раньше ... Возможно, MS решила, что это не нужно. В конце концов, HashSet был добавлен в .NET 3.5. – kbrimington

ответ

0

Похоже, что емкость может быть получена от длины частного члена m_buckets. Вы можете просмотреть его значение во время отладки. Чтобы получить доступ к частным членам во время выполнения, вы можете использовать Отражение или динамику в .NET 4.0.

Смежные вопросы