我有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