我有SortedDictionary
集合:如何排序鍵SortedDictionary收集字母
SortedDictionary<string, string> _variableValues = new SortedDictionary<string, string>();
鍵值對的樣子:
ThkPost_Point15 5
ThkPost_Point1 15
ThkPost_Point11 8
ThkPost_Point2 7
ThkPost_Point20 1
ThkPost_Point22 1
現在我想他們按字母順序排序。
我嘗試用
_variableValues.OrderBy(key => key.Key);
這樣做,但我的問題是,這個結果是:
ThkPost_Point1 15
ThkPost_Point11 8
ThkPost_Point15 5
ThkPost_Point2 7
ThkPost_Point20 1
ThkPost_Point22 1
但什麼即時尋找是實現一個排序結果等的溶液:
ThkPost_Point1 15
ThkPost_Point2 7
ThkPost_Point11 8
ThkPost_Point15 5
ThkPost_Point20 1
ThkPost_Point22 1
是否有任何方法使用SortedDictionary
以這種方式對數據進行排序?
編輯:
我試圖執行巴布和metacubed的提示。
所以impelented它通過以下方式
static void Main(string[] args)
{
SortedDictionary<string, string> _varVal = new SortedDictionary<string, string>(StringComparer.OrdinalIgnoreCase);
_varVal.Add("Variable1", "Value1");
_varVal.Add("Variable2", "Value2");
_varVal.Add("Variable3", "Value3");
_varVal.Add("Variable4", "Value4");
_varVal.Add("Variable5", "Value5");
_varVal.Add("Variable10", "Value10");
_varVal.Add("Variable11", "Value11");
_varVal.Add("Variable12", "Value12");
_varVal.Add("Variable13", "Value13");
_varVal.Add("Variable14", "Value14");
_varVal.Add("Variable20", "Value20");
_varVal.Add("Variable22", "Value21");
_varVal.Add("Variable23", "Value22");
_varVal.Add("Variable24", "Value23");
_varVal.Add("Variable25", "Value24");
foreach (KeyValuePair<string, string> kvp in _varVal)
{
Console.WriteLine(kvp.Key,kvp.Value);
Debug.WriteLine(kvp.Key +" "+ kvp.Value);
}
Application.Run();
}
但結果仍是如下:
Variable1 Value1
Variable10 Value10
Variable11 Value11
Variable12 Value12
Variable13 Value13
Variable14 Value14
Variable2 Value2
Variable20 Value20
Variable22 Value21
Variable23 Value22
Variable24 Value23
Variable25 Value24
Variable3 Value3
Variable4 Value4
Variable5 Value5
我錯過了什麼?
看到我的編輯..更復雜,但會按照您的預期在所有情況下工作。 – metacubed
只爲那些可能有同樣問題的人。我發現了另一種解決方案,在我的情況下,它就像一個魅力一樣。 http://www.codeproject.com/Articles/11016/Numeric-String-Sort-in-C – ck84vi