204 votes

string.ToLower () et string.ToLowerInvariant ()

Quelle est la différence et quand utiliser quoi? Quel est le risque si j'utilise toujours ToLower () et quel est le risque si j'utilise toujours ToLowerInvariant ()?

186voto

AaronLS Points 12720

En fonction de la culture actuelle, ToLower peut produire une culture spécifique lettre minuscule, que vous n'attendiez pas. Comme la production d' ınfo sans le point sur le " i " au lieu de info et ainsi de déblayage jusqu'comparaisons de chaînes. Pour cette raison, ToLowerInvariant doit être utilisé sur n'importe quel non-données spécifiques à la langue. Lorsque vous pourriez avoir une entrée d'utilisateur qui peut être dans leur langue maternelle/de jeu de caractères, serait généralement être la seule fois que vous utilisez ToLower.

Voir cette question pour un exemple de ce problème: C#- ToLower() est parfois retrait de point à partir de la lettre "I"

47voto

danyolgiax Points 5460

Je pense que cela peut être utile:

http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant.aspx

mise à jour

Si votre application dépend du cas d'une chaîne de changer de façon prévisible qui n'est pas affectée par la culture actuelle, utilisez la ToLowerInvariant méthode. Le ToLowerInvariant méthode est équivalente à ToLower(CultureInfo.InvariantCulture). La méthode est recommandée lorsqu'une collection de chaînes de caractères doivent apparaître dans un ordre prévisible dans un contrôle d'interface utilisateur.

aussi

...ToLower est très similaire dans la plupart des endroits à ToLowerInvariant. Les documents indiquent que ces méthodes ne fera que changer de comportement avec les turcs cultures. Aussi, sur les systèmes Windows, le système de fichiers sensible à la casse, ce qui limite son utilisation...

http://www.dotnetperls.com/tolowerinvariant-toupperinvariant

hth

30voto

Danny Chen Points 14781

String.ToLower() utilise la culture par défaut alors que String.ToLowerInvariant() utilise la culture invariante. Vous demandez donc essentiellement les différences entre la culture invariante et la comparaison ordinale de chaînes .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X