C# 如何按字母顺序对字符串排序(不使用LINQ)

C# 如何按字母顺序对字符串排序(不使用LINQ),c#,C#,我正试着用C按字母顺序排列一些字符串。我发现了我认为不一致的行为。 我在互联网上搜索过,但只找到了实现我已经创建的代码的最基本的Exmaple List a=新列表{“a”、“W”、“W”}; 列表b=新列表{“Waw”、“wWa”、“awW”}; a、 排序(); b、 排序(); 因此,在分类之后,我有: a = { "a", "w", "W" } b = { "awW", "Waw", "wWa" } 这似乎不一致 a的排序将w置于w b的排序将W置于W 如果.NET使用hascode

我正试着用C按字母顺序排列一些字符串。我发现了我认为不一致的行为。

我在互联网上搜索过,但只找到了实现我已经创建的代码的最基本的Exmaple

List a=新列表{“a”、“W”、“W”};
列表b=新列表{“Waw”、“wWa”、“awW”};
a、 排序();
b、 排序();
因此,在分类之后,我有:

a = { "a", "w", "W" }
b = { "awW", "Waw", "wWa" }
这似乎不一致

a
的排序将
w
置于
w

b
的排序将
W
置于
W


如果.NET使用hascodes进行比较,也许可以解释这一点。我怎样才能得到一致的结果?

“b的排序将W置于W之前”-不,它将“Wa”置于“wW”之前。这与不区分大小写的排序是一致的。有关更多信息,请参阅。我觉得这并不矛盾。这是一种区分大小写的类型。你想要的。然后,您可以指定希望排序是大小写盲的。不确定这是否有帮助?谢谢你的快速回复。在我看来,as列表a的顺序是“a”,“w”,“w”,即.NET声明“w”在“w”之前。好啊所以我认为“wWa”应该排在“Waw”之前。我尝试传递参数CurrentCultureIgnoreCase、invariantCultureIgnoreCase和OrdinalIgnoreCase,但没有区别。我纠正了它,“那种b把W放在W之前”-不,它把“Wa”放在“wW”之前。这与不区分大小写的排序是一致的。有关更多信息,请参阅。我觉得这并不矛盾。这是一种区分大小写的类型。你想要的。然后,您可以指定希望排序是大小写盲的。不确定这是否有帮助?谢谢你的快速回复。在我看来,as列表a的顺序是“a”,“w”,“w”,即.NET声明“w”在“w”之前。好啊所以我认为“wWa”应该排在“Waw”之前。我尝试传递参数CurrentCultureIgnoreCase、invariantCultureIgnoreCase和OrdinalIgnoreCase,但没有区别。我纠正了它。