Le QHash :: contient la méthode sensible à la casse ou insensible à la casse?

StackOverflow https://stackoverflow.com/questions/1078004

  •  21-08-2019
  •  | 
  •  

Question

J'ai un QHash<QString,QString>. J'utilise l'expression suivante pour vérifier si une valeur est là dans le QHash::keys() ou non.

//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
 //some code
}

Parfois, les conditions ci-dessus correspond, parfois pour les mêmes lettres de cas différents. Est-ce le cas sensible méthode QHash::contains?

Était-ce utile?

La solution

QHash.contains() est sensible à la casse comme John T mentionné. Sans le code il n'y a pas grand-chose à comprendre. Vous pouvez l'imaginer faire une entre les touches ==.

S'il vous plaît ne pas oublier que l'accès à un élément non existant via [] crée une entrée vide dans le hachage, cela pourrait être ce qui cause votre bug. Ne pas insérer contains une entrée dans le hachage, ni ne value

Autres conseils

Il est sensible à la casse. La pratique courante de traitement de données provenant de sources multiples et en le comparant est de convertir tout le même format d'abord, ce qui implique généralement faire tout en minuscules avant la comparaison.

Ceci est une pratique courante, en particulier sur les sites Web pour les connexions, ou la manipulation d'entrée de l'utilisateur dans les applications pour éviter l'ancien «

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top