微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 按顺序对Hashtable进行排序

除了.NET之外,这类似于 How to keep the order of elements in hashtable.

.NET中是否有任何Hashtable或Dictionary允许您按照添加到集合中的顺序访问条目的.Index属性

解决方法

NameValueCollection可以通过索引检索元素(但是您不能要求特定键或元素的索引).所以,
var coll = new NameValueCollection();
coll.Add("Z","1");
coll.Add("A","2");
Console.WriteLine("{0} = {1}",coll.GetKey(0),coll[0]); // prints "Z = 1"

但是,当您多次添加键时,它的行为很奇怪(与IDictionary相比):

var coll = new NameValueCollection();
coll.Add("Z","2");
coll.Add("Z","3");
Console.WriteLine(coll[0]); // prints "1,3"

然而,这种行为已有详细记录.

警告:NameValueCollection不实现IDictionary.

暂且不说:字典< K,V>没有您可以使用的任何索引,但只要您只添加元素,并且永远不删除任何索引,元素的顺序就是插入顺序.请注意,这是Microsoft当前实现的详细信息:文档明确声明该顺序是随机的,因此在.NET Framework或Mono的未来版本中,此行为可能会更改.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐