我有一个场景,我可以使用NameValueCollection或IDictionary.但我想知道哪一个会更好地表现.
- 使用NameValueCollection
NameValueCollection options()
{
NameValueCollection nc = new NameValueCollection();
nc = ....; //populate nc here
if(sorting)
//sort NameValueCollection nc here
return nc;
}
Run Code Online (Sandbox Code Playgroud)
- 使用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;
}
Run Code Online (Sandbox Code Playgroud)
Jus*_* R. 29
这些集合类型不完全可互换:NameValueCollection允许通过整数索引进行访问.如果您不需要该功能,则不应使用NameValueCollection,因为索引不是"免费".
根据您正在查看的字符串数量,我会考虑使用Hashtable或IDictionary.Krzysztof Cwalina在这里讨论了细微之处:http://blogs.gotdotnet.com/kcwalina/archive/2004/08/06/210297.aspx.
我同意 fatcat 和 lomaxx(并且对这两个答案都投了赞成票)。我想补充一点,在集合类型之间进行选择时,集合类型的性能很可能是最后一个考虑因素。使用最适合您的使用需求的类型。如果您处于代码的性能关键部分(并且很可能不是),那么唯一的答案是衡量每个案例 - 不要相信互联网,相信数字。
| 归档时间: |
|
| 查看次数: |
10981 次 |
| 最近记录: |