如何使用C#中的键对NameValueCollection进行排序?

我写了下面的代码并且它也有效 – 但我想知道它们是否比这更好:

NameValueCollection optionInfoList = ..... ; if (aSorting) { optionInfoListSorted = new nameValueCollection(); String[] sortedKeys = optionInfoList.AllKeys; Array.Sort(sortedKeys); foreach (String key in sortedKeys) optionInfoListSorted.Add(key, optionInfoList[key]); return optionInfoListSorted; } 

请改用SortedDictionary 。

也许您可以使用不同类型的列表,它支持直接排序?

 List> optionInfoList = ...; if (sorting) { optionInfoList.Sort((x,y) => String.Compare(x.Key, y.Key)); } return optionInfoList; 

如果你必须使用NameValueCollection并且集合中没有很多项目,那就没关系。 如果它完成了工作,就不需要得到任何比这更好的了。

如果这是性能瓶颈,那么重新访问。