C#中ToUpper()和ToUpperInvariant()的区别

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

C#中ToUpper()和ToUpperInvariant()的区别

世界分为若干个文化和区域,RFC 1766 定义了文化的名称,这些名称根据语言和国家或区域的不同在世界各地使用。

例如en-AU、en-CA、en-GB和en-US分别用于表示澳大利亚、加拿大、英国和美国的英语。

不同的文化和区域有很大差异,比如阿拉伯语从右往左显示。

ToUpper() 就是按CurrentCulture把所有字母转换为大写。

ToUpperInvariant() 使用固定区域性的大小写规则。固定区域性表示不区分区域性。 它与英语语言关联,但不与任何国家/地区关联。

《CLR via C#》, 其中有一个章节讲String类型。

当进行不区分大小写的字符串对比时,应当尽量多的使用ToUpperInvariant,因为一方面CLR对转换为大写的操作进行了专门的优化,使其性能更加卓越;另一方面ToUpperInvariant和ToLowerInvariant忽略了对语言文化的处理,因此性能比ToUpper和ToLower要快得多。

请参见 使用 InvariantCulture 属性。


金蝶云星空中对字符串的处理推荐使用:

将StringComparison.CurrentCultureIgnoreCase改成StringComparison.OrdinalIgnoreCase

将StringComparer.CurrentCultureIgnoreCase改成StringComparer.OrdinalIgnoreCase

将.ToUpper()方法代码替换成.ToUpperInvariant()

将.ToLower()方法改成.ToLowerInvariant()


C#中ToUpper()和ToUpperInvariant()的区别

世界分为若干个文化和区域,RFC 1766 定义了文化的名称,这些名称根据语言和国家或区域的不同在世界各地使用。例如en-AU、en-CA、en-GB和...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息