Как отсортировать NameValueCollection с помощью ключа в C #? - PullRequest
5 голосов
/ 04 марта 2009

Я написал следующий код, и он тоже работает - но я хотел знать, является ли их лучший способ, чем этот:

 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 ]

4 голосов
/ 04 марта 2009

Используйте взамен SortedDictionary .

3 голосов
/ 04 марта 2009

Возможно, вы могли бы использовать другой вид списка, который поддерживает сортировку напрямую?

List<KeyValuePair<string, string>> optionInfoList = ...;
if (sorting) {
   optionInfoList.Sort((x,y) => String.Compare(x.Key, y.Key));
}
return optionInfoList;
1 голос
/ 04 марта 2009

Если у вас есть для использования NameValueCollection и у вас не так много предметов в коллекции, тогда все в порядке. Не нужно быть более любопытным, чем это, если оно выполнит свою работу.

Если это узкое место в производительности, вернитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...