Ce face List.indexOf
indexOf returnează poziția primei apariții a valorii, căutând de la poziția start. lastIndexOf caută de la final spre început. Ambele returnează -1 când nu găsesc nimic.
indexWhere returnează poziția primului element pentru care testul este adevărat (sau -1). Există și lastIndexWhere. Folosește-le când ai nevoie de poziție; pentru elementul în sine este mai simplu firstWhere.
Parametri
| Parametru | Descriere |
|---|---|
element |
Valoarea căutată (comparată cu ==). |
test |
Pentru indexWhere: condiția căutată. |
start |
Poziția de la care începe căutarea. |
Ce returnează
Poziția găsită sau -1.
Exemple
Exemplul 1: Poziții în listă
void main() {
final zile = ['luni', 'marți', 'luni', 'joi'];
print(zile.indexOf('luni'));
print(zile.lastIndexOf('luni'));
print(zile.indexOf('luni', 1));
print(zile.indexOf('duminică'));
}
Rezultat
0
2
2
-1
Exemplul 2: indexWhere și înlocuirea elementului găsit
void main() {
final produse = [('lapte', 6.5), ('pâine', 4.0), ('cafea', 32.9)];
final i = produse.indexWhere((p) => p.$1 == 'pâine');
if (i != -1) {
produse[i] = ('pâine', 4.5);
}
print(produse);
print('primul peste 10 lei, la poziția ${produse.indexWhere((p) => p.$2 > 10)}');
}
Rezultat
[(lapte, 6.5), (pâine, 4.5), (cafea, 32.9)]
primul peste 10 lei, la poziția 2
Greșeli frecvente
- Folosești rezultatul direct ca poziție, fără să verifici
-1:lista[-1]aruncăRangeError.
Comenzi înrudite
Iterable.contains: Verifică dacă un element egal (==) cu valoarea dată există în colecție.Iterable.firstWhere: Găsește primul, ultimul sau singurul element care trece un test, cu o valoare de rezervă opțională (orElse).List.operator[]: lista[i] citește elementul de pe poziția i; lista[i] = x îl înlocuiește.