StringComparision.Ordinal更准确或IgnoreCase

时间:2012-11-05 21:43:02

标签: c# string

在一个可能在非美国英语环境中使用的WinForms应用程序中,我有一个String.Equals(strA,strB)方法,它失败了,因为我需要做一个案例 - 不敏感的比较,但是defdault是比较是区分大小写的。现在要解决这个问题,你建议哪个更好?

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

感谢。

1 个答案:

答案 0 :(得分:0)

使用CurrentCultureIgnoreCaseOrdinal比较不符合文化使用的字母顺序。

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

添加:即使您没有排序/订购但只检查“相等”与“不相等”,OrdinalIgnoreCaseCurrentCultureIgnoreCase之间可能存在差异。例如,对于序数比较,"istanbul""Istanbul"是相等的,直到大小写为止。但是,对于土耳其文化,它们可能不等同,因为'i'的大写版本不是'I'而是'İ'。所以这个城市将是"İstanbul"