2010-02-02 15 views
3

我有一個應用程序列出了很多語言。在應用程序中,我比較語言名稱。MonoTouch比較字符串

當我比較沒有口音的語言名稱時,它的工作原理和比較是正確的。

當我比較語言與口音,它不認爲他們是平等的。

在這種情況下,他們是不相等的(但應該是)。

Language = "Español"; 
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language); 
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Español"); 

在這個例子中他們是平等的(通知沒有口音)。

Language = "Deutsch"; 
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language); 
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Deutsch"); 

我試過cultureinvariate比較無濟於事。

我在這裏錯過了什麼?

我使用MonoTouch的1.4.4

+0

哪裏是你的實際代碼確實比較? – AnthonyLambert 2010-02-02 10:19:18

+1

if(s == l){....}這在Visual Studio中的.NET中起作用,但在MonoTouch中不起作用,這使我認爲它可能是一個錯誤。 – 2010-02-03 13:54:30

回答

2

下面的比賽,你需要忽略口音:

var Language = "Español" ; 
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language); 
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Español"); 

int result = String.Compare(s,l, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);