当前位置:  开发笔记 > 编程语言 > 正文

这些比较应该返回什么?

如何解决《这些比较应该返回什么?》经验,为你挑选了1个好方法。

我有一个使用string.compare(string,string)的应用程序来排序一些值.我无法弄清楚的是为什么"1022"比小于"10-23"和"10-23"的比较小于"1024".

" - "的值是否有特定的东西会导致这种结果?对于相同类型的数据(带破折号的数字),string.compare的重载是否会为不同的文化设置提供相同的结果?



1> Rasmus Faber..:

从string.Compare(String,String)的文档中:

使用单词排序规则进行比较.

并进一步:

.NET Framework使用三种不同的排序方式:单词排序,字符串排序和顺序排序.单词排序执行文化敏感的字符串比较.某些非字母数字字符可能会分配特殊权重.例如,连字符(" - ")可能具有非常小的权重,因此"coop"和"co-op"在排序列表中彼此相邻.字符串排序类似于单词排序,除了没有特殊情况.因此,所有非字母数字符号都在所有字母数字字符之前.序数排序根据字符串的每个元素的Unicode值比较字符串.

Michael Kaplan在这里提供了更多细节:排序键的A&P,第9部分(又名并非总是传递,但是准时和标点).

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有