Iterable.contains în Dart

Verifică dacă un element egal (==) cu valoarea dată există în colecție.

Sintaxă
bool contains(Object? element)

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. contains face comparație exactă; normalizează mai întâi cu toLowerCase() sau folosește any cu 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.