2011-02-01 82 views
0

我有兩個字符串,我想比較。字符串對比問題

A是與屬性Header一個Silverlight的用戶控制。

B是一個純System.String

當我比較喜歡這樣:

if(A.Header == B) 

我收到他們是不一樣的。

如果我通過快速查看來檢查VS2010中的值,值是相同的。如果我在兩個對象上運行GetType,我發現它們都是System.String

我知道我可以將它們與String.Compare進行比較。

我雖然這樣做在字符串==總是比較值。在使用此Silverlight控件時是否有點奇怪?任何人都可以解釋我在這裏失蹤了嗎?

謝謝。

+0

不`String.compare`返回TRUE;? – detunized 2011-02-01 10:43:10

+0

'string.Compare`返回字符串是否相等? – ChrisF 2011-02-01 10:43:47

+0

不,我只是雙重檢查 – 2011-02-01 10:44:05

回答

0

它們有相同的長度嗎?也許有尾隨或領先的空間。

0

試試這個:

char[] arrayA = A.Header.ToCharArray(); 
char[] arrayB = B.ToCharArray(); 

,並與VS.對其進行檢查應該清楚它們在哪些方面有所不同。

0

它們可能會有拖尾空間或看起來相同的東西,但具有不同的實際字符代碼。像西里爾字符е可能看起來像拉丁文e,但它們不一樣。嘗試遍歷字符,看看他們是否都一樣。

0

可能是前導或尾隨空格,區別在外殼中,也許它包含的字符看起來相同,但是具有不同的字符代碼。

嘗試以下操作:

if (string.Compare(A.Header.Trim(), B.Trim(), StringComparison.OrdinalIgnoreCase) == 0) 
{ 
    .. 
}