NameValueCollection на самом деле ничего не делает со своим iequalityComparer?

StackOverflow https://stackoverflow.com/questions/3053237

Вопрос

Я смотрю на System.Collections.Specialized.NameValueCollection и это берет IEqualityComparer, что хорошая новость, если кто-то вроде меня хотел отсортировать предметы в коллекции, скажем, что-то вроде алфавитного порядка ключей.

Но по тем ближе смотрите в Reflector, Я не вижу NVC класс на самом деле использует IEqualityComparer в любом месте. Является ли мое наблюдение правильно? Как в, я не вижу никакого использования для IEqualityComparer в перечислимой организации, кроме повторной договоренности о своем составных пунктах на какое-то кардинал. И я не вижу метода на NVC Похоже, что это может захотеть что-то из этого (Sort, Arrange, OrderBy, Aggregate, так далее.).

Это было полезно?

Решение

NameValueCollection использует а Хеш-таблица внутренне хранить значения. То Hashtable использует то IEqualityComparer к хэш и сравнить ключевые ключи для равенства.

Также обратите внимание IEqualityComparer не делает никаких упорядочений, он сравнивается только на равенство (в качестве имени подразумевается), поэтому он не полезен, если вы хотите Сортировать Значения / ключи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top