NameValueCollection на самом деле ничего не делает со своим iequalityComparer?
-
27-09-2019 - |
Вопрос
Я смотрю на System.Collections.Specialized.NameValueCollection
и это берет IEqualityComparer
, что хорошая новость, если кто-то вроде меня хотел отсортировать предметы в коллекции, скажем, что-то вроде алфавитного порядка ключей.
Но по тем ближе смотрите в Reflector
, Я не вижу NVC
класс на самом деле использует IEqualityComparer
в любом месте. Является ли мое наблюдение правильно? Как в, я не вижу никакого использования для IEqualityComparer
в перечислимой организации, кроме повторной договоренности о своем составных пунктах на какое-то кардинал. И я не вижу метода на NVC
Похоже, что это может захотеть что-то из этого (Sort
, Arrange
, OrderBy
, Aggregate
, так далее.).
Решение
NameValueCollection
использует а Хеш-таблица внутренне хранить значения. То Hashtable
использует то IEqualityComparer
к хэш и сравнить ключевые ключи для равенства.
Также обратите внимание IEqualityComparer
не делает никаких упорядочений, он сравнивается только на равенство (в качестве имени подразумевается), поэтому он не полезен, если вы хотите Сортировать Значения / ключи.