我有一些这样的代码:
If key.Equals("search", StringComparison.OrdinalIgnoreCase) Then DoSomething() End If
我不关心这个案子。我应该使用OrdinalIgnoreCase,InvariantCultureIgnoreCase还是CurrentCultureIgnoreCase?
OrdinalIgnoreCase
InvariantCultureIgnoreCase
CurrentCultureIgnoreCase
较新的 .Net Docs 现在有一个表格,可帮助您确定最适合您的情况。
来自 MSDN 的“在 Microsoft .NET 2.0 中使用字符串的新建议”
摘要:以前使用InvariantCulturefor 字符串比较、大小写和排序的代码所有者应该强烈考虑String在 Microsoft .NET 2.0 中使用一组新的重载。 具体来说,设计为与文化无关和语言无关的数据 应开始使用新枚举的StringComparison.Ordinal或StringComparison.OrdinalIgnoreCase成员指定重载。StringComparison这些强制执行类似于这样的逐字节比较strcmp,不仅避免了基本符号字符串的语言解释中的错误,而且提供了更好的性能。
InvariantCulture
String
StringComparison.Ordinal
StringComparison.OrdinalIgnoreCase
StringComparison
strcmp