在C#中,String.CompareOrdinal(strA, strB)
等同于String.Compare(strA, strB, StringComparison.Ordinal)
吗?
我在 https://msdn.microsoft.com/en-us/library/e6883c06.aspx 检查了文件,它没有提到这一点。
他们都做同样的事情。您可以从 https://referencesource.microsoft.com 关注来源
-
public static int CompareOrdinal(String strA, String strB(
-
Calls private unsafe static int CompareOrdinalHelper(String strA, String strB(
和
- public static int Compare(String strA, String strB, StringComparison comparisonType(
- Calls private unsafe static int CompareOrdinalHelper(String strA, String strB(
代码路径几乎相同
事实上,唯一的区别是后者有一个快速检查,所以如果你有指令强迫症,你可以统计上保存你自己几个周期
if ((strA.m_firstChar - strB.m_firstChar) != 0)
{
return strA.m_firstChar - strB.m_firstChar;
}