快速案例不敏感字符串比较 [英] Fast Case Insensitive String Comparisons
本文介绍了快速案例不敏感字符串比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用.ToUpper()执行不区分大小写的有什么替代方法
字符串比较?
我问的原因是我我在长循环中比较字符串,看起来是平等的
;我希望这个循环尽可能快地运行。所以我是
寻找一种比.ToUpper()更快的方法。
谢谢!
What are some alternatives to using .ToUpper() to perform case insensitive
string comparisons?
The reason I''m asking is that I''m comparing strings in a long loop, looking
for equality; and I want for this loop to run as fast as possible. So I''m
looking for a method that would be faster than .ToUpper().
Thanks!
推荐答案
您是否尝试在.Compare方法中指定不区分大小写?
Merk写道:
Did you try specifying case insensitivity in the .Compare method?
Merk wrote:
使用.ToUpper()执行不区分大小写的有哪些替代方法
字符串比较?
我问的原因是我在长循环中比较字符串,看起来是平等的
;我希望这个循环尽可能快地运行。所以我是
寻找一种比.ToUpper()更快的方法。
谢谢!
What are some alternatives to using .ToUpper() to perform case insensitive
string comparisons?
The reason I''m asking is that I''m comparing strings in a long loop, looking
for equality; and I want for this loop to run as fast as possible. So I''m
looking for a method that would be faster than .ToUpper().
Thanks!
在2.0,IIRC,从测试(现已删除)我相信
string.Equals(lhs,rhs,ComparerOptions .OrdinalIgnoreCase)是最快的
。
你也可以使用StringComparer.OrdinalIgnoreCase.Equals(...)但是我
相信这有点慢。
最好的办法是在紧凑的循环中尝试每个选项进行测试;
你可以尝试:
lhs.ToUpper()== rhs.ToUpper()
lhs.Equals(rhs,StringComparison.OrdinalIgnoreCase); //或
InvariantCultureIgnoreCase
string.Equals(lhs,rhs,StringComparison.OrdinalIgnoreCase)//或
InvariantCultureIgnoreCase
StringComparer.OrdinalIgnoreCase.Equals(lhs,rhs); //或不变的情况
不敏感
等
Marc
In 2.0, IIRC, from tests (now deleted) I believe that
string.Equals(lhs,rhs, ComparerOptions.OrdinalIgnoreCase) is the
fastest.
You can also use StringComparer.OrdinalIgnoreCase.Equals(...) but I
beleive that this is a little slower.
Your best bet is to try every option in a tight loop to test;
you could try:
lhs.ToUpper() == rhs.ToUpper()
lhs.Equals(rhs, StringComparison.OrdinalIgnoreCase); // or
InvariantCultureIgnoreCase
string.Equals(lhs, rhs, StringComparison.OrdinalIgnoreCase) // or
InvariantCultureIgnoreCase
StringComparer.OrdinalIgnoreCase.Equals(lhs, rhs); // or invariant case
insensitive
etc
Marc
ComparerOptions.OrdinalIgnoreCase
我的意思是StringComparison.OrdinalIgnoreCase,但intellisense会有
告诉你......
Marc
ComparerOptions.OrdinalIgnoreCase
I meant StringComparison.OrdinalIgnoreCase, but intellisense would have
told you that...
Marc
这篇关于快速案例不敏感字符串比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文