c# - c# String.Compare vs String.CompareOrdinal
问题描述
在 C# 中,String.CompareOrdinal(strA, strB)
相当于String.Compare(strA, strB, StringComparison.Ordinal)
?
我在https://msdn.microsoft.com/en-us/library/e6883c06.aspx检查了文档,但没有提到这一点。
解决方案
他们都做同样的事情。您可以关注来自https://referencesource.microsoft.com的来源
和
- 公共静态int比较(字符串strA,字符串strB,字符串比较比较类型)
- 调用private unsafe static int CompareOrdinalHelper(String strA, String strB)
代码路径几乎相同
事实上,唯一的区别是后者有一个快速检查,所以如果你有指令强迫症,你可以在统计上为你自己节省几个周期
if ((strA.m_firstChar - strB.m_firstChar) != 0)
{
return strA.m_firstChar - strB.m_firstChar;
}
推荐阅读
- mysql - 数据分离的 MySQL 8.0 部署
- cassandra - Cassandra 分区问题
- php - 当我输出转义的 htmlspecialchars 字符串时,HTML 实体不显示?
- gradle - 是否可以在 Gradle build.gradle 中使用 @Grab?
- javascript - magento 1.8 在管理面板中添加 cookie 同意的位置
- vue.js - vue.js 不会在mounted() 挂钩上更新
- python - 在pycharm中安装pandas包
- multithreading - 如何将 std::sync::RwLock 引用传递给多个线程?
- bash - 如果存在匹配模式,如何 awk 查找和替换第 2、3、4 和第 5 列中的字符串
- python - python csv处理列内的逗号