Ce face Iterable.contains
contains compară valoarea dată cu elementele, folosind ==, și returnează true la prima potrivire. Pe o List verifică elementele pe rând (lent pe liste foarte mari); pe un Set sau pe map.keys căutarea este aproape instantanee.
Pentru obiectele tale, contains găsește un obiect doar dacă clasa definește == (și hashCode) sau dacă este chiar același obiect. Records și textele se compară după conținut.
Parametri
| Parametru | Descriere |
|---|---|
element |
Valoarea căutată. |
Ce returnează
true dacă valoarea există.
Exemple
Exemplul 1: Căutare într-o listă și într-un set
void main() {
final orase = ['Iași', 'Cluj', 'Brașov'];
print(orase.contains('Cluj'));
print(orase.contains('cluj'));
final zileLibere = {'sâmbătă', 'duminică'};
for (final zi in ['luni', 'duminică']) {
print('$zi: ${zileLibere.contains(zi) ? 'liber' : 'lucru'}');
}
}
Rezultat
true
false
luni: lucru
duminică: liber
Exemplul 2: Records se compară după valori
void main() {
final rezervari = [('Ana', 12), ('Mihai', 3)];
print(rezervari.contains(('Ana', 12)));
print(rezervari.contains(('Ana', 13)));
}
Rezultat
true
false
Greșeli frecvente
- Cauți textul fără să ții cont de majuscule.
containsface comparație exactă; normalizează mai întâi cutoLowerCase()sau foloseșteanycu propriul test.
Comenzi înrudite
Iterable.every: every verifică dacă toate elementele trec testul; any verifică dacă măcar unul îl trece.List.indexOf: Găsește poziția unui element (prima sau ultima apariție) sau a primului element care trece un test; -1 dacă nu există.Set.contains: contains verifică rapid dacă un element este în set; containsAll verifică dacă sunt toate elementele unei colecții.Map.containsKey: containsKey verifică dacă o cheie există în map, iar containsValue dacă o valoare apare la vreo cheie.