我希望"2-“和"22”总是以相同的方式进行比较,但更改第三个字符会改变排序顺序。
string.Compare("2-1","22-", StringComparison.CurrentCulture) //-1
string.Compare("2-2","22-", StringComparison.CurrentCulture) //1这里到底发生了什么?
顺便说一句,我们的文化是美国本土的。
发布于 2017-06-21 12:16:07
根据文档
字符集包括可忽略的字符。
Compare(String, String, StringComparison)方法在执行区分区域性的比较时不考虑这些字符。若要识别比较中的可忽略字符,请为StringComparison.Ordinal参数或OrdinalIgnoreCase参数提供一个值。
在您的例子中,连字符是一个不可忽略的字符。在这种情况下,这意味着中间连字符没有被考虑在内。这意味着它实际上将21和22与22-进行比较,后者将分别计算为-1和1。
https://stackoverflow.com/questions/44675770
复制相似问题