[英]Working Principle of Array.Sort()
我有一个输入数组定义如下:
string[] inputArray = { "a", "s", "d", "f", "g", "2", "3", "34", "4", "4", "y", "a", "f", "8", "h", "m" };
当我对此数组执行排序时,我得到的输出为:
{"2","3","34","4","4","8","a","a","d","f","f","g","h","m","s","y"}
为什么数字出现在字母之前?
Array.Sort()
是否对ASCII代码的基础进行排序(ascii数字代码低于字母)?
字符串在所谓的字典顺序中进行比较,这意味着您要比较两个第一个字符,如果相等则比较接下来的两个字符,依此类推。 如果其中一个字符串在另一个字符串之前结束,则它首先出现。
确实比较了两个字符的数值,通常是ASCII。 在ASCII表中,控制字符(不可打印)首先出现,然后是数字,大写字母,小写字母和这些组之间的特殊字符。
它的逻辑基于IComparable接口。 因此,sort方法使用的默认实现更喜欢数字到字母表。
第二:它完全基于IComparable接口,你可以在这里看到文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.