我是C#的新手,只是有关StringComparison的一个问题。我们知道StringComparison具有Ordinal,OrdinalIgnoreCare等。有些文档说:
序数:使用序数(二进制)排序规则比较字符串
但是我不明白排序与字符串比较之间的关系,我们不只是为每个字符计算ASCII以查看它们是否匹配?例如,如果我们编写代码:
string s1 = "Hello";
string s2 = "HELLO";
if (s1.Equals(s2, StringComparison.Ordinal)) {
...
}
,如果我们要比较s1和s2,则第一个字符“ H”是相同的。 s1的下一个字符是e,ASCII码为101,“ E”为69,101不等于69,所以s1与s2不同,因此这里不涉及排序吗?
答案 0 :(得分:0)
您是对的。但是,排序(或排序)是比较的主要应用。因此,他们将这些想法混为一谈。除了s///
之外,比较两个字符串将给出其排序顺序。
注意:.NET对文本数据类型使用Unicode字符集的UTF-16字符编码。因此,正在将UTF-16代码单元的序列与“二进制”进行比较。