c# String.Compare 与 String.CompareOrdinal 对比

标签 c# string

在 C# 中,String.CompareOrdinal(strA, strB) 是否等同于 String.Compare(strA, strB, StringComparison.Ordinal)

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

最佳答案

他们都做同样的事情。可以关注来源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)

代码路径几乎相同

事实上,唯一的区别是后者有一个快速检查,所以如果你有指令强制症,你可以从统计上节省你自己几个周期

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

关于c# String.Compare 与 String.CompareOrdinal 对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50551546/

相关文章:

c# - 哪个控件可以构建一个十六进制编辑器?

c# - 发布时从另一个 ASP.NET Core 2 项目引用 ASP.NET Core 2 项目失败

python - 两个字符串列表的交集

string - 在 R 中以 "V, W, X, Y, and Z"样式输出列表的简单方法

c# - 从两个字符串值之间获取一个字符串

c# - 使用 Ninject 和 Ninject.Extensions.Nlog2 的空引用异常

c# - 在 C# 或 JavaScript 中将 DIV 内容转换为图像

c# - 将 onclick 事件添加到动态创建的链接按钮

java - XML 字符串资源与 Java 常量字符串?

c - 在没有 strtok/lexer 的情况下将字符串解析为标记