String.Compare的不同重载之间的区别

具体来说有什么区别

  • String.Compare(String, String, StringComparison)
  • String.Compare(String, String, CultureInfo, CompareOptions)

我觉得第二个提供了更多的选项 (比较使用任何文化而不是只有当前的一个或不变的,忽略特殊字符,忽略katakanas(!!)等的宽度…) 比第一个 。 两者都已经在.NET 2.0中引入了它,所以我想它不能成为向后兼容的问题。

那么有什么区别,什么时候应该使用第一个?什么时候应该使用第二个?

我看过这篇文章和这篇文章 ,但我认为他们处理的是一些略有不同的问题。

你的回答是第二次超载的评论。

http://msdn.microsoft.com/en-us/library/cc190529.aspx

“比较使用culture参数来获取特定于文化的信息,例如大小写规则和单个字符的字母顺序。例如,特定的文化可以指定某些字符组合被视为单个字符,即大写和小写字符可以以特定方式进行比较,或者字符的排序顺序取决于前面或后面的字符。“

另一个重载只使用默认文化。