我使用C#编程语言。当我比较两个char值时,得到的输出是正确的。例如:
'-'.CompareTo('!') //Its sending me positive value 12
意思是 '-' > '!' 是 true
但是当我比较两个相同值的字符串时,结果却不同
"-".CompareTo("!") //Its sending me negative value -1
意味着 "-" > "!" 是 false
有人可以解释一下为什么是这样吗?两种情况都不应该是真的吗?
CompareTo
用于排序,而不是(必然)用于检查相等性。如果CompareTo
返回零,则认为实例是“相等的”。有关详细信息,请参阅 Char.CompareTo 和 String.CompareTo。 - Corakchar
逻辑。问题是您想如何排序。应该是文化感知的、文化无关的还是词典独立的?String.CompareTo
或String.CompareToOrdinal
是否按您所需进行排序?然后使用它们,否则构建自己的排序逻辑。-- 您可能还想查看使用StringComparison进行比较和使用CultureInfo进行比较。 - Corak