2010-02-02 4 views
3

J'ai une application qui répertorie de nombreuses langues. Dans l'application, je compare les noms de langue.MonoTouch Comparaison de chaînes

Lorsque je compare des noms de langue sans accents, cela fonctionne et la comparaison est vraie.

Lorsque je compare des langues avec des accents, il ne pense pas qu'ils sont égaux.

Dans ce cas, ils ne sont PAS égaux (mais devraient l'être).

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

Dans cet exemple, ils sont égaux (remarquez pas d'accents).

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

J'ai essayé de comparer cultureinvariate en vain.

Est-ce que je manque quelque chose de fondamental ici?

J'utilise MonoTouch 1.4.4

+0

où est votre code réel qui ne la comparer? – AnthonyLambert

+1

if (s == l) {....} Cela fonctionne dans .NET dans Visual Studio, mais pas dans MonoTouch ce qui me fait penser qu'il pourrait s'agir d'un bug. –

Répondre

2

les matches suivants que vous avez besoin: pour ignorer les accents

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);