加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:35:47 所属栏目:百科 来源:网络整理
导读:除了.NET之外,这类似于 How to keep the order of elements in hashtable. .NET中是否有任何Hashtable或Dictionary允许您按照添加到集合中的顺序访问条目的.Index属性? 解决方法 NameValueCollection可以通过索引检索元素(但是您不能要求特定键或元素的索引
除了.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的未来版本中,此行为可能会更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读