Puisque vous voulez seulement vérifier l'existence d'une donnée valeur vous pouvez appliquer le contains
pour la méthode values
des propriétés de votre dictionnaire (donné comme dictionnaire Swift natif), par exemple
var types: [Int : String] = [1: "foo", 2: "bar"]
print(types.values.contains("foo")) // true
Comme mentionné dans @njuri : réponse en utilisant le values
du dictionnaire peut apparemment entraîner une surcharge (je ne l'ai pas vérifié moi-même) par rapport à la simple vérification de la propriété contains
directement contre l'entrée de la valeur dans le tuple clé-valeur de chaque Dictionary
élément. Comme Swift est rapide, cela ne devrait pas poser de problème, sauf si vous travaillez avec un énorme dictionnaire. Quoi qu'il en soit, si vous souhaitez éviter d'utiliser l'élément values
vous pouvez consulter les alternatives données dans la réponse précédente, ou utiliser une autre alternative ( Dictionary
) comme suit :
extension Dictionary where Value: Equatable {
func containsValue(value : Value) -> Bool {
return self.contains { $0.1 == value }
}
}
types.containsValue("foo") // true
types.containsValue("baz") // false