Quel serait le meilleur code:
int pos = file.dmFileDescr.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);
ou
int pos = file.dmFileDescr.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);
Quel serait le meilleur code:
int pos = file.dmFileDescr.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);
ou
int pos = file.dmFileDescr.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);
Ni code, c'est toujours mieux. Ils font des choses différentes, de sorte qu'ils sont bon à différentes choses.
InvariantCultureIgnoreCase
utilise les règles de comparaison basé sur l'anglais, mais sans aucune des variations régionales. Ce qui est bon pour un neutre comparaison qui prend toujours en compte certains aspects linguistiques.
OrdinalIgnoreCase
compare les codes de caractères sans les aspects culturels. C'est bon pour les comparaisons exactes, comme les mots de passe, mais pas pour le tri des chaînes de caractères avec des caractères inhabituels comme é
ou ö
. C'est aussi plus rapide car il n'existe pas de règles supplémentaires à appliquer avant de les comparer.
FXCop généralement préfère OrdinalIgnoreCase
. Mais que vos besoins peuvent varier.
Pour l'anglais il y a très peu de différence. C'est quand vous vous promenez dans des langues différentes de la langue écrite des constructions que cela devient un problème. Je ne suis pas assez expérimenté pour vous donner plus que cela.
OrdinalIgnoreCase
Le StringComparer renvoyé par la OrdinalIgnoreCase bien traite les caractères dans les chaînes de comparer les comme si elles étaient converties pour les majuscules en utilisant les conventions de l'invariant de la culture, puis effectue une simple comparaison octet qui est indépendant de la langue. Ce qui est le plus approprié lors de l' la comparaison des chaînes de caractères qui sont générés par programme ou lors de la comparaison de la casse, des ressources telles que les chemins et noms de fichiers. http://msdn.microsoft.com/en-us/library/system.stringcomparer.ordinalignorecase.aspx
InvariantCultureIgnoreCase
Le StringComparer renvoyé par la InvariantCultureIgnoreCase propriété compare les chaînes de caractères dans un environnement linguistique d'une manière pertinente, qui ignore la casse, mais il n'est pas approprié pour l'affichage dans toute culture particulière. Ses principaux l'application est à l'ordre des chaînes dans une manière qui sera identique à travers les les cultures. http://msdn.microsoft.com/en-us/library/system.stringcomparer.invariantcultureignorecase.aspx
L'invariant de la culture, l' CultureInfo objet retourné par la InvariantCulture de la propriété.
Le InvariantCultureIgnoreCase propriété renvoie en fait un exemple d'une classe anonyme dérivée de la StringComparer classe.
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.