关于C#:.NET中的为什么大写字母大于小写字母?

Why the capital letter is greater than small letter in .Net?

和Java。 </P >

1
"A".compareTo("a"); return -32 //"A" is less than"a".

净,用string.compareto:和。 </P >

1
"A".CompareTo("a"); return 1 //"A" is greater than"a".

净,用char.compareto:和。 </P >

1
'A'.CompareTo('a'); return -32 //"A" is less than"a".

我知道在Java应用中的地位和compares串字符Unicode黑板,但公司净吨。这信是如何determines资本比大和小的信。净吗? </P >

string.compareto法(字符串) </P >


我能找到的医生说:

This method performs a word (case-sensitive and culture-sensitive) comparison using the current culture.

因此,它不像Java的EDCOX1 0,它默认使用字典代码比较,使用Unicode代码点,正如你所说的。

因此,在.NET中,它取决于当前的"文化"(Java会称之为"区域设置"),我猜。

看来,如果你想在.NET中做字符串比较,那么你就必须使用EDCOX1 1。

相反,如果您想在Java中进行与区域相关的字符串比较,则需要使用EDCOX1 2。

最后,msdn上的另一个链接显示了文化对比较甚至字符串相等的影响。


从Java字符串

Returns:
the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.

从.NET字符串.CompareTo

This method performs a word (case-sensitive and culture-sensitive)
comparison using the current culture. For more information about word,
string, and ordinal sorts, see System.Globalization.CompareOptions.

这篇文章解释了比较类型之间的区别

文档解释了所有比较类型之间的区别;

如果你看这两个,当前文化和序数

1
2
3
4
5
6
7
8
9
 StringComparison.Ordinal:
 LATIN SMALL LETTER I (U+0069) is less than LATIN SMALL LETTER DOTLESS I (U+0131)
 LATIN SMALL LETTER I (U+0069) is greater than LATIN CAPITAL LETTER I (U+0049)
 LATIN SMALL LETTER DOTLESS I (U+0131) is greater than LATIN CAPITAL LETTER I (U

 StringComparison.CurrentCulture:
 LATIN SMALL LETTER I (U+0069) is less than LATIN SMALL LETTER DOTLESS I (U+0131)
 LATIN SMALL LETTER I (U+0069) is less than LATIN CAPITAL LETTER I (U+0049)
 LATIN SMALL LETTER DOTLESS I (U+0131) is greater than LATIN CAPITAL LETTER I (U+0049)

序数是唯一的一个EDOCX1×3,因此类似Java。


这是由ASCII字符集中的字符顺序决定的。如果您要在程序中执行任何形式的数据操作,那么您应该真正理解这一点。

我不确定网格控件是否有任何允许您修改排序顺序的属性,如果没有,则必须编写自己的排序子例程。

您可以将std::sort函数与用户定义的谓词函数一起使用,该函数将所有小写字母放在大写字母之前。