NameValueCollection实际上没有对IEqualityComparer做任何事情?

时间:2010-06-16 12:34:45

标签: iequalitycomparer namevaluecollection

我正在查看System.Collections.Specialized.NameValueCollection并且它需要IEqualityComparer,如果像我这样的人想要对集合中的项目进行排序,比如按键的字母顺序,这是个好消息

但是,仔细查看Reflector,我看不到NVC类实际上在任何地方使用IEqualityComparer。我的观察是否正确?同样,除了在某些基本订单上重新安排其组成项目之外,我认为在可枚举实体中没有使用IEqualityComparer。我在NVC上看不到某种方法看起来可能想要做某种事情(SortArrangeOrderByAggregate,等)。

1 个答案:

答案 0 :(得分:1)

NameValueCollection在内部使用Hashtable来存储值。 Hashtable使用IEqualityComparer来哈希和比较密钥以获得相等。

另请注意,IEqualityComparer不进行任何排序,它仅比较相等(顾名思义),因此如果您想排序值/键,则无效。< / p>