8
votes

4 Réponses :


1
votes

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.


3 commentaires

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.




6
votes

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
));


0 commentaires

4
votes

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.

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.


0 commentaires