OVH Cloud OVH Cloud

comparaison de strings

2 réponses
Avatar
fabien bole-feysot
bonjour
j'ai une application c# qui utilise de nombreuses strings (scan de
répertoire, réception réseau, base de registre, ...), et j'ai très souvent
besoin de faire des comparaisons / indexOf pour trouver des sous-strings,
etc...
Certaines de mes comparaisons sont case-sensitive, mais la plupart doivent
être case-insensitive.
y-a-t-il un moyen de spécifier, par exemple pour in 'indexOf', ou
l'opérateur = =, que la comparaison que je veux faire est case sensitive ou
pas ?
la technique que j'utilise actuellement est le passage par toLower( ) sur ma
ou mes strings à comparer, mais c'est loin d'être optimal.
Il doit bien y avoir un moyen simple et pratique de définir, au cas par cas,
comment on veut comparer 2 strings ?
merci

2 réponses

Avatar
Gilles TOURREAU
fabien bole-feysot a présenté l'énoncé suivant :
bonjour
j'ai une application c# qui utilise de nombreuses strings (scan de
répertoire, réception réseau, base de registre, ...), et j'ai très souvent
besoin de faire des comparaisons / indexOf pour trouver des sous-strings,
etc...
Certaines de mes comparaisons sont case-sensitive, mais la plupart doivent
être case-insensitive.
y-a-t-il un moyen de spécifier, par exemple pour in 'indexOf', ou l'opérateur
= =, que la comparaison que je veux faire est case sensitive ou pas ?
la technique que j'utilise actuellement est le passage par toLower( ) sur ma
ou mes strings à comparer, mais c'est loin d'être optimal.
Il doit bien y avoir un moyen simple et pratique de définir, au cas par cas,
comment on veut comparer 2 strings ?
merci



Il existe dans IndexOf un paramètre pour çà...

Regardes dans la doc du coté de :
String.IndexOf (String, StringComparison)

StringComparison est une énumération qui devrait faire ton bonheur !


Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Patrick Philippot
Bonjour,

la technique que j'utilise actuellement est le passage par toLower( )
sur ma ou mes strings à comparer, mais c'est loin d'être optimal.



Effectivement, le GC est très sollicité dans ce cas puisque les chaînes sont
"immutable" et qu'il faut en créer 2 nouvelles à chaque fois puis les
"garbage collecter".

Il doit bien y avoir un moyen simple et pratique de définir, au cas
par cas, comment on veut comparer 2 strings ?



Ben à quoi ça sert que le framework il se décarcassse et propose l'argument
ignoreCase dans String.Compare :-) ? Les benchmarks montrent que ça va 5
fois plus vite qu'avec la méthode ToUpper ou ToLower.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr