我有一个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
以这种方式排序数据?
编辑:
我尝试实现Babu和metacubed的提示。
因此,以下是我实现的方式:
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
我有没有漏掉什么?