2009-03-03 32 views
6

我已經寫了下面的代碼和它的作品 - 但是我想知道是否他們是更好的方式比這如何使用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; 
      } 

回答

3

也許你可以使用不同類型的列表中,支持直接排序?

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

我需要將此傳遞給另一個類,並且在我的方法簽名中使用List 會給我代碼分析錯誤。 – 2009-03-03 23:59:34

+0

你會明白你的意思是「代碼分析錯誤」嗎? – Sung 2009-03-04 00:19:55

1

如果你使用NameValueCollection而你沒有在集合中的許多項目,那就沒事。如果能夠完成這項工作,就不需要有任何的發明者。

如果這是一個性能瓶頸,然後重新訪問。

相關問題