Ist das QHash :: enthält Methode case-sensitive oder Groß- und Kleinschreibung?

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

  •  21-08-2019
  •  | 
  •  

Frage

Ich habe eine QHash<QString,QString>. Ich verwende den folgenden Ausdruck zu prüfen, ob ein Wert dort im QHash::keys() ist oder nicht.

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

Manchmal sind die oben genannten Bedingungen entspricht, manchmal nicht für die gleichen Buchstaben verschiedener Fall. Ist die QHash::contains Methode case-sensitive?

War es hilfreich?

Lösung

QHash.contains() Groß- und Kleinschreibung wie John T erwähnt. Ohne den Code ist es, herauszufinden, nicht viel. Sie können sich vorstellen, eine == zwischen den Tasten zu tun.

Bitte vergessen Sie nicht, dass ein nicht vorhandenes Element über [] Zugriff auf einen leeren Eintrag in der Hash erstellen, könnte dies sein, was Ihren Fehler verursacht. contains keinen Eintrag in der Hash einfügen, ebenso wenig wie value

Andere Tipps

Es ist Groß- und Kleinschreibung. Die gängige Praxis, Daten aus mehreren Quellen Handhabung und vergleicht es ist alles auf das gleiche Format zu konvertieren ersten, die in der Regel alles beinhaltet zum Vergleich vor Kleinbuchstabe zu machen.

Dies ist eine gängige Praxis, vor allem auf Websites für Anmeldungen Handhabung oder Benutzereingaben in Anwendungen, die die alten ‚ PEBKAC ‘ Situationen und es einfacher für die Benutzer machen.

Eine Lösung könnte sein QString Unterklasse und die operator== außer Kraft setzen den Vergleich mit Groß- und Kleinschreibung-Modus zu tun, mit QString :: vergleichen .

Aber die Lösung von John T ist auf jeden Fall besser, wenn es Ihre Einschränkungen paßt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top