2016-12-03 4 views
1

In der lettischen Kultur lv-LV gibt es Sonderzeichen wie 'A', '' ',' '' usw. Gibt es einen eingebauten Weg, wo der folgende Code wahr zurückgibt?C# Kultur Spezielle Symbole

var nameLv = "Jevģeņijs"; 

var nameEng = "Jevgenijs"; 

nameLv.Equals(nameEng, StringComparison.InvariantCultureIgnoreCase); 
+1

Suchen Sie speziell nach einer Lösung, die 'StringComparison' verwendet, oder sind Sie für alles offen? Wenn das letztere, dann [kann diese Antwort] (http://stackoverflow.com/a/2086575/301857) helfen. –

+0

Yeap, das wird funktionieren, danke! –

Antwort

1

Hier ist eine Lösung, die this answer auf Ihren Code gilt.

public static void Main() 
{ 
    var nameLv = "Jevģeņijs"; 
    var nameEng = "Jevgenijs"; 

    var result = IsEquivalent(nameLv, nameEng); // returns True 
} 

public static bool IsEquivalent(string latvian, string english) 
{ 
    return english == 
     Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(latvian)); 
} 

Ich kann nicht sagen, ob dies die stabilste Methode ist oder wird selbst besondere Saiten gegeben arbeiten, aber tested with your input es scheint gut zu funktionieren.

Es gibt quite a few other solutions in demselben Thread, den Sie vielleicht auch auschecken möchten.