我在使用List.Sort时对.net排序字符串的方式有一些非常奇怪的行为。
这就是我的意思。这个例子符合我认为是按字典顺序排列这些特殊字符的正确顺序:
public void sortOrder()
{
var list = new List<string> {"_", "-"};
list.Sort();
Console.WriteLine("Output: " + string.Join(", ", list));
}
我得到-, _
因此我认为是正确的。但是,当我执行以下操作时:
public void sortOrder2()
{
var list = new List<string> {"x-amz-meta-file-number", "x-amz-meta-file_type"};
list.Sort();
Console.WriteLine("Output: " + string.Join(", ", list));
}
根据我的第一次测试,我得到了x-amz-meta-file_type, x-amz-meta-file-number
我没想到的。
任何人都知道为什么.net会对这些字符串进行不同的排序?