在也可以在非美国英语环境中使用的 WinForms 应用程序中,我有一个 String.Equals(strA, strB) 方法,但它失败了,因为我需要进行不区分大小写的比较,但默认情况下是大小写比较-敏感的。现在要解决此问题,您建议什么更好?
- CurrentCultureIgnoreCase ?
- StringComparision.Ordinal ?
- StringComparision.OrdinalIgnoreCase ? *有更好的建议吗?
谢谢。
使用CurrentCultureIgnoreCase. Ordinal比较不尊重文化使用的字母顺序。
但这当然取决于您要完成的工作。如果你想做一些忽略用户文化的事情,当然还有其他可能性,包括使用InvariantCulture.
另外:即使您没有排序/排序,而只是检查“相等”与“不相等”,和之间也可能存在OrdinalIgnoreCase差异CurrentCultureIgnoreCase。例如,对于一个序数比较,"istanbul"和"Istanbul"是否相等,取决于大小写。但是,在土耳其文化中,它们可能不等价,因为大写版本的'i'not 'I'but 'İ'。所以城市将是"İstanbul"。