快速案例不敏感字符串比较 [英] Fast Case Insensitive String Comparisons

查看:82
本文介绍了快速案例不敏感字符串比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆