Domanda

sto guardando System.Collections.Specialized.NameValueCollection e ci vuole un IEqualityComparer, il che è una buona notizia se qualcuno come me volesse ordinare gli elementi della raccolta, ad esempio, in base a qualcosa di simile all'ordine alfabetico delle chiavi.

Ma, guardando più da vicino Reflector, non vedo il NVC classe effettivamente utilizzando il file IEqualityComparer ovunque.La mia osservazione è corretta?Nel senso che non vedo alcuna utilità per un IEqualityComparer in un'entità enumerabile diversa dal riorganizzare i suoi elementi costitutivi secondo un ordine cardinale.E non vedo un metodo attivo NVC sembra che potrebbe voler fare qualcosa del genere (Sort, Arrange, OrderBy, Aggregate, eccetera.).

È stato utile?

Soluzione

NameValueCollection utilizza a Tabella hash internamente per memorizzare i valori.IL Hashtable utilizza il IEqualityComparer per eseguire l'hash e confrontare le chiavi per l'uguaglianza.

Nota anche questo IEqualityComparer non esegue alcun ordinamento, confronta solo per uguaglianza (come suggerisce il nome), quindi non è utile se lo desideri ordinare valori/chiavi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top