NameValueCollection ne fait pas quoi que ce soit avec son IEqualityComparer?
-
27-09-2019 - |
Question
Je regarde System.Collections.Specialized.NameValueCollection
et il faut un IEqualityComparer
, ce qui est de bonnes nouvelles si quelqu'un comme moi voulait trier les éléments de la collection, disons, quelque chose comme l'ordre alphabétique des clés.
Mais, regarder de plus près dans Reflector
, je ne vois pas la classe NVC
en utilisant le fait partout de IEqualityComparer
. Mon observation correcte? Comme dans, je ne vois pas l'utilisation d'un IEqualityComparer
dans une entité dénombrable autre que de réarranger ses éléments constitutifs sur un ordre cardinal. Et je ne vois pas une méthode sur NVC
qui ressemble à cela pourrait vouloir faire quelque chose de ce genre (Sort
, Arrange
, OrderBy
, Aggregate
, etc.).
La solution
NameValueCollection
utilise un Hashtable en interne pour stocker les valeurs. Le Hashtable
utilise le IEqualityComparer
à hachage et clés pour l'égalité comparer.
Notez également que IEqualityComparer
ne pas faire de la commande, il se compare uniquement pour l'égalité (comme son nom l'indique) il est donc pas utile si vous voulez trier / valeurs clés.