c#string.CompareOrdinal vs运算符==

c#string.CompareOrdinal vs运算符==,c#,string,string-comparison,C#,String,String Comparison,我想比较linq表达式中的两个字符串。如果我使用`string.CompareOrdinal,我会利用它吗?还是相同 list.Where(str1 => string.CompareOrdinal(str1, str2) == 0); list.Where(str1 => str1 == str2); 根据其他人所做的基准测试,string.CompareOrdinal在进行大量比较时可能比=稍快一些: 通过10000次比较,大多数董事会成员保持绿色,并且没有任何时间注册 在10

我想比较
linq
表达式中的两个字符串。如果我使用`string.CompareOrdinal,我会利用它吗?还是相同

list.Where(str1 => string.CompareOrdinal(str1, str2) == 0);
list.Where(str1 => str1 == str2);

根据其他人所做的基准测试,
string.CompareOrdinal
在进行大量比较时可能比
=
稍快一些:

通过10000次比较,大多数董事会成员保持绿色,并且没有任何时间注册

在10万和100万马克之间,从时差的角度来看,事情开始变得有点有趣

String.CompareOrdinal
一直是超级明星。令我惊讶的是,对于不区分大小写的比较,
String.CompareOrdinal
的性能比大多数其他方法高出整整一个小数位

对于区分大小写的比较,大多数程序员可能会坚持使用“==”运算符

--


但是请注意,我们讨论的100000个区分大小写的字符串比较的总差异为3毫秒,10000和1000000个比较没有观察到可测量的差异


因此,这种差异不太可能与您的应用程序相关(尤其是在使用LINQ to对象时),因此应该首选可读性更高的
=

您是否阅读了文档?博客帖子?基准?源代码?