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

时间:2009-03-03 23:37:43

标签: c# sorting collections

我写过以下代码并且它也有效 - 但我想知道它们是否比这更好:

 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;
            }

3 个答案:

答案 0 :(得分:4)

改为使用SortedDictionary

答案 1 :(得分:3)

也许你可以使用另一种支持直接排序的列表?

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

答案 2 :(得分:1)

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

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