c#String.Compare vs String.CompareOrdinal

时间:2018-05-27 11:13:20

标签: c# string

在C#中,String.CompareOrdinal(strA, strB)相当于String.Compare(strA, strB, StringComparison.Ordinal)

我在https://msdn.microsoft.com/en-us/library/e6883c06.aspx查看了该文档,但没有提到这一点。

1 个答案:

答案 0 :(得分:3)

他们都做同样的事情。您可以关注https://referencesource.microsoft.com

中的来源
  1. public static int CompareOrdinal(String strA, String strB)

  2. 致电private unsafe static int CompareOrdinalHelper(String strA, String strB)

    1. public static int Compare(String strA, String strB, StringComparison comparisonType)
    2. 致电private unsafe static int CompareOrdinalHelper(String strA, String strB)
    3. 代码路径几乎相同

      事实上唯一的差异是后者有快速检查,所以如果你有指令OCD ,你可以统计保存你的自我几个周期

         if ((strA.m_firstChar - strB.m_firstChar) != 0)
         {
              return strA.m_firstChar - strB.m_firstChar;
         }