ho cercando di gestire al carattere successivo: ⨝ (http://www.fileformat.info/info/unicode/char/2a1d/index.htm)string.Empty.StartsWith (((char) 10781) .ToString()) restituisce sempre true?
Se verificare se una stringa vuota a partire da questo personaggio, restituisce sempre vero, questo non ha alcun senso! Perché?
// 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()));
Il confronto sensibile alla cultura per impostazione predefinita sembra una grave e disastrosa violazione del principio di minima sorpresa. Esiste qualche regola empirica per determinare quali metodi richiedono un StringComparison per ottenere un comportamento ordinale "normale" e quali no? – bobince
@ bobince- hai visto questa domanda- http: // StackOverflow.com/domande/72696/che-è-generalmente-migliore-per-use-StringComparison-OrdinalIgnoreCase-o-stringcom – RichardOD