J'essaie de gérer au caractère suivant: ⨝ (http://www.fileformat.info/info/unicode/char/2a1d/index.htm)chaîne.Empty.StartsWith (((char) 10781) .ToString()) renvoie toujours vrai?
Si vous vérifier si une chaîne vide en commençant par ce caractère, il retourne toujours vrai, cela ne fait aucun sens! Pourquoi donc?
// 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()));
La comparaison sensible à la culture par défaut semble être une grande violation désastreuse du principe de la moindre surprise. Existe-t-il une règle empirique pour déterminer quelles méthodes nécessitent un StringComparison pour obtenir un comportement ordinal «normal» et lesquelles ne le font pas? – bobince
@ bobince- avez-vous vu cette question- http: // stackoverflow.com/questions/72696/qui-est-généralement-meilleur-à-utiliser-chaînecomparison-ordinalignorecase-ou-stringcom – RichardOD