除了.NET之外,这类似于
How to keep the order of elements in hashtable.
解决方法
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的未来版本中,此行为可能会更改.