ich folgende Zeichen zu behandeln versuchen: ⨝ (http://www.fileformat.info/info/unicode/char/2a1d/index.htm)string.Empty.StartsWith (((char) 10781) .ToString()) gibt immer wahr zurück?
Wenn Sie, ob eine leere Zeichenfolge mit diesem Zeichen beginnt die Überprüfung, es immer true zurück, das macht keinen Sinn! Warum das?
// visual studio 2008 hides lines that have this char literally (bug in visual studio?!?) so i wrote it's unicode instead.
char specialChar = (char)10781;
string specialString = specialChar.ToString();
// prints 1
Console.WriteLine(specialString.Length);
// prints 10781
Console.WriteLine((int)specialChar);
// prints false
Console.WriteLine(string.Empty.StartsWith("A"));
// both prints true WTF?!?
Console.WriteLine(string.Empty.StartsWith(specialString));
Console.WriteLine(string.Empty.StartsWith(((char)10781).ToString()));
Kultur-sensitive-Vergleich-standardmäßig scheint eine große katastrophale Verletzung des Prinzips der geringsten Überraschung. Gibt es eine Faustregel, um zu bestimmen, welche Methoden einen StringComparison benötigen, um "normales" Ordnungsverhalten zu erhalten und welche nicht? – bobince
@ bobince- haben Sie diese Frage http: // stackoverflow gesehen.com/questions/72696/which-is-im Allgemeinen-best-to-use-stringcomparison-ordinalignorecore-or-stringcom – RichardOD