【转】不分英文字母大小寫的字串比較方式

不分英文字母大小寫的字串比較方式

DotBlogs Tags: .Net 效能
2 人收藏 我要推薦 | 閱讀數 : 1673 | Category: .Net隨手記 | 訂閱

最近在看一些MSDN上的文章,看到一篇我"常犯"的錯,就是文字字串如果要不分大小寫去比對,我都是先ToLower()或是ToUpper()之後再去比,但看完這篇後,才知道我錯了.

這個例子是在下面這個的情況 :

view source

print?

1
string a="AAA";

2
string b="aaa";

3
bool c=a.ToUpper()==b.ToUpper();

很習慣性的寫法,在MSDN裡說明了這個用法並不建議使用,因為在ToUpper()或是ToLower(),還是會將轉換後的字串暫存起來,再去做比對的動作,所以這種做法並不建議,如果要比對,最好是用string.Compare(a,b,true).

所以這段code就會改為如下 :

view source

print?

1
string a="AAA";

2
string b="aaa";

3
bool c=string.Compare(a,b,true)==0;

寫了一段Sample去比較了一下這兩種的效能差異,差不多後者快了前者五倍以上,但如果只是要做a==b,不做Upper/Lower,直接用前者就好了.

posted @ 2010-02-25 16:40  RainUU  阅读(420)  评论(0编辑  收藏  举报