pour ma réponse dans Cette question i avoir à comparer deux personnages. Je pensais que la normale Char.comPareto () < / a> Méthode me permettrait de spécifier un cultureinfo em>, mais ce n'est pas le cas. p>
Donc, ma question est la suivante: Comment puis-je comparer deux caractères et spécifier un cultureInfo pour la comparaison? em> p>
4 Réponses :
Je ne pense pas que la cultureinfo importe tout en comparant des caractères en C #. Char est déjà un caractère Unicode afin que deux caractères puissent être facilement comparés WitoHut CultureInfo. P>
Je pense que l'objectif de la question est d'avoir une égalité pour différents caractères Unicode avec la même signification dans une certaine culture. Par exemple, (lors de l'ignorance de l'affaire) I et moi sommes les mêmes au Royaume-Uni, mais pas en Turquie.
Je pense qu'il recherche une chose de transformation en langage naturel.
@MAFUTRCT, @Chis: Oui, je suis curieux de comparer les possibilités de comparer un caractère dans une certaine culture (par exemple en Turquie). Il semble y avoir une différence, quand je comparais à des caractères et deux caractères ont été lancés à la chaîne.
Il n'y a pas de culture permettant de comparer des caractères, vous devez convertir les caractères en chaînes afin que vous puissiez utiliser par exemple le string.ca.cacher (chaîne, chaîne, cultureinfo, compareroptions) code> méthode. Exemple: P>
char a = 'Ã¥';
char b = 'ä';
// outputs -1:
Console.WriteLine(String.Compare(
a.ToString(),
b.ToString(),
CultureInfo.GetCultureInfo("sv-SE"),
CompareOptions.IgnoreCase
));
// outputs 1:
Console.WriteLine(String.Compare(
a.ToString(),
b.ToString(),
CultureInfo.GetCultureInfo("en-GB"),
CompareOptions.IgnoreCase
));
Il y a en effet une différence entre comparer des caractères et des chaînes. Permettez-moi d'essayer d'expliquer le problème de base, qui est assez simple: un personnage représente toujours un seul point unicode. La comparaison des caractères compare toujours les points de code sans aucun respect quant à leur sens égal. P>
Si vous souhaitez comparer des caractères pour une signification égale, vous devez créer une chaîne et utiliser les méthodes de comparaison fournies là-bas. Ceux-ci incluent le support pour différentes cultures. Voir la réponse de Guffa sur la façon de faire ça. P>