IDictionary的<字符串,字符串>或NameValueCollection中 [英] IDictionary<string, string> or NameValueCollection
问题描述
我有这样一个场景,在我可以使用的NameValueCollection或IDictionary的。但我想知道哪一个会是更好的性能明智
- 使用的NameValueCollection
NameValueCollection中选择()
{
的NameValueCollection NC =新的NameValueCollection();
NC = ....; //这里填入数控
如果(排序)
//排序的NameValueCollection NC这里
返回NC;
}
- 使用的IDictionary
的IDictionary<字符串,字符串>选项()
{
&字典LT;字符串,字符串> optionDictionary =新词典<字符串,字符串>();
optionDictionary = ....; //填充
如果(排序)
返回新SortedDictionary<字符串,字符串>(optionDictionary);
,否则
返回optionDictionary;
}
这些集合类型是不完全互换:NameValueCollection中允许通过整数索引访问。如果你不需要这个功能,你不应该使用的NameValueCollection作为索引免费不来的。
根据字符串你看数字,我会考虑任何的Hashtable或IDictionary的。克日什托夫·Cwalina这里讨论的细微之处:的http://博客。 gotdotnet.com/kcwalina/archive/2004/08/06/210297.aspx 。
I have a scenario where-in I can use either NameValueCollection or IDictionary. But I would like to know which one will be better performance-wise.
-- Using NameValueCollection
NameValueCollection options()
{
NameValueCollection nc = new NameValueCollection();
nc = ....; //populate nc here
if(sorting)
//sort NameValueCollection nc here
return nc;
}
-- using IDictionary
IDictionary<string, string> options()
{
Dictionary<string, string> optionDictionary = new Dictionary<string, string>();
optionDictionary = ....; //populate
if(sorting)
return new SortedDictionary<string, string>(optionDictionary);
else
return optionDictionary;
}
These collection types are not exactly interchangeable: NameValueCollection allows access via integer indexes. If you don't need that functionality, you shouldn't use a NameValueCollection as indexing doesn't come "for free".
Depending on the number of strings you're looking at, I would consider either Hashtable or IDictionary. Krzysztof Cwalina discusses the subtleties here: http://blogs.gotdotnet.com/kcwalina/archive/2004/08/06/210297.aspx.
这篇关于IDictionary的<字符串,字符串>或NameValueCollection中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!