问一下 NameValueCollection Dictionary HashTable的适用范围

时间:2021-02-23 19:53:05
我知道 HashTable 是唯一key  无序
Dictionary  是唯一key 但是可以排序
NameValueCollection   key 可以重复

他们分别在什么环境下运用比较好?

我现在做一个权限系统 我想把 用户 权限 读成一个key value list

然后在具体环境中 根据 key 得到 value  根据 value的 true 或者false 来判断是否有权限

请问这样的情况用哪种比较好

6 个解决方案

#1


Dictionary

#2


HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedDictionary(支持泛型)

根据需要自己选了

#3


引用 1 楼 jinkuang45 的回复:
Dictionary


为什么选它  好处是说什么?

#4


引用 2 楼 mgenx 的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedD……


HashTable是没有强类型的字典
这句不是很明白 

你的回答
对我来说 我还是不知道 我该用什么 他们的适用范围是那里


#5


引用 4 楼 ayun00 的回复:
引用 2 楼 mgenx 的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排……


看来你是新手,你的key是什么形式,就比方是TKey类型吧,用一个Dictionary<TKey, bool>来存就可以。
HashTable不支持这种泛型的字典,一切操作都是object,用Dictionary。

如果有排序需要的话用SortedList或SortedDictionary<TKey, bool>类型

#6


引用 2 楼  的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedD……

NameValueCollection怎么得到他内部的key 和value值?

#1


Dictionary

#2


HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedDictionary(支持泛型)

根据需要自己选了

#3


引用 1 楼 jinkuang45 的回复:
Dictionary


为什么选它  好处是说什么?

#4


引用 2 楼 mgenx 的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedD……


HashTable是没有强类型的字典
这句不是很明白 

你的回答
对我来说 我还是不知道 我该用什么 他们的适用范围是那里


#5


引用 4 楼 ayun00 的回复:
引用 2 楼 mgenx 的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排……


看来你是新手,你的key是什么形式,就比方是TKey类型吧,用一个Dictionary<TKey, bool>来存就可以。
HashTable不支持这种泛型的字典,一切操作都是object,用Dictionary。

如果有排序需要的话用SortedList或SortedDictionary<TKey, bool>类型

#6


引用 2 楼  的回复:
HashTable是没有强类型的字典,Dictionary是.NET 2.0后支持泛型的字典
如果仅是普通字典需要Dictionary就可以满足

如果还需要通过索引值访问字典用OrderedDictionary,可惜没有泛型类

如果key是字符串,想用索引值访问,值也是字符串(支持多值),用NameValueCollection

如果想排序用SortedList或SortedD……

NameValueCollection怎么得到他内部的key 和value值?