1

在也可以在非美国英语环境中使用的 WinForms 应用程序中,我有一个 String.Equals(strA, strB) 方法,但它失败了,因为我需要进行不区分大小写的比较,但默认情况下是大小写比较-敏感的。现在要解决此问题,您建议什么更好?

  • CurrentCultureIgnoreCase ?
  • StringComparision.Ordinal ?
  • StringComparision.OrdinalIgnoreCase ? *有更好的建议吗?

谢谢。

4

1 回答 1

0

使用CurrentCultureIgnoreCase. Ordinal比较不尊重文化使用的字母顺序。

但这当然取决于您要完成的工作。如果你想做一些忽略用户文化的事情,当然还有其他可能性,包括使用InvariantCulture.

另外:即使您没有排序/排序,而只是检查“相等”与“不相等”,和之间也可能存在OrdinalIgnoreCase差异CurrentCultureIgnoreCase。例如,对于一个序数比较,"istanbul""Istanbul"是否相等,取决于大小写。但是,在土耳其文化中,它们可能不等价,因为大写版本的'i'not 'I'but 'İ'。所以城市将是"İstanbul"

于 2012-11-05T21:46:32.950 回答