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 ()?
Réponses
Trop de publicités?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"
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
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 .