日期:2014-05-17  浏览次数:20826 次

为什么我listview点击排序后1111竟然在2的上面
它是根据首字母开始拍的,比如2和111111,那么111111就在2的上面,为什么?代码就是网上的那些代码

------解决方案--------------------
因为 11111 的 ascii 序在 2 的前面。ascii序首先比较第一个字符,1 < 2。如果是第一个字符相同,再比较第二个字符。如果某个序列比较短,那么排在前面。比如
1 11 111 12 2 3...
如果要按照数字序排序,先用int.Parse() double.Parse()等函数转换成数字,再排序。
------解决方案--------------------
引用:
因为 11111 的 ascii 序在 2 的前面。ascii序首先比较第一个字符,1 < 2。如果是第一个字符相同,再比较第二个字符。如果某个序列比较短,那么排在前面。比如
1 11 111 12 2 3...
如果要按照数字序排序,先用int.Parse() double.Parse()等函数转换成数字,再排序。


是字符串在进行比较.
------解决方案--------------------
字符串排序了。改成按照数字排序。