ASCII比较和字符串比较之间的区别

Arn*_*nab 7 c# string-comparison

我正在使用C#.当我比较两个char值时,它向我发送正确的输出,比如,

'-'.CompareTo('!') //Its sending me positive value 12
Run Code Online (Sandbox Code Playgroud)

意思是' - '>'!' 是真的

但是当我比较两个相同值的字符串时,它发送给我不同的结果

"-".CompareTo("!") //Its sending me negative value -1
Run Code Online (Sandbox Code Playgroud)

意思是" - ">"!" 是假的

谁能解释一下为什么会这样做?这两种情况都不应该是"真的"吗?

Sri*_*vel 8

String的Compare方法是特定于文化的.这就是为什么你得到不同的结果.string.CompareOrdinal而是使用,这是逐字节比较.

var v = '-'.CompareTo('!');//12
var s = string.CompareOrdinal("-", "!");//12
Run Code Online (Sandbox Code Playgroud)

在.NET Framework中使用字符串的最佳实践