List.add în Dart

List: liste Dart 2.0

add adaugă un element la sfârșitul listei; addAll adaugă toate elementele unei alte colecții.

Sintaxă
void add(E value)
void addAll(Iterable<E> iterable)

Ce face List.add

add pune elementul după ultimul, iar lungimea crește cu 1. addAll adaugă la final, în ordine, toate elementele unui iterable (listă, set, rezultat de map).

Ambele funcționează doar pe liste extensibile. Pe o listă de lungime fixă sau nemodificabilă aruncă UnsupportedError. Cu operatorul cascadă poți adăuga mai multe elemente într-o singură expresie: lista..add(1)..add(2).

Parametri

Parametru Descriere
value Elementul adăugat. Trebuie să aibă tipul elementelor listei.
iterable Pentru addAll: colecția ale cărei elemente se adaugă.

Ce returnează

Nimic (void).

Exemple

Exemplul 1: Construirea unei liste de cumpărături

void main() {
  final cos = <String>[];
  cos.add('mere');
  cos.add('brânză');
  cos.addAll(['cafea', 'zahăr']);
  print(cos);

  final extra = {'apă', 'pâine'};
  cos.addAll(extra);
  print('${cos.length} produse: ${cos.join(', ')}');
}

Rezultat

[mere, brânză, cafea, zahăr]
6 produse: mere, brânză, cafea, zahăr, apă, pâine

Exemplul 2: Cascadă și adăugare din calcule

void main() {
  final note = <int>[]
    ..add(9)
    ..add(7)
    ..addAll([10, 8].where((n) => n >= 9));
  print(note);
}

Rezultat

[9, 7, 10]

Greșeli frecvente

  • Scrii lista = lista.add(x): add returnează void, deci nu ai ce atribui. Lista se modifică pe loc.
  • Adaugi într-o listă în timp ce o parcurgi cu for-in: apare ConcurrentModificationError.

Comenzi înrudite

  • List.insert: Inserează un element (insert) sau mai multe (insertAll) la o poziție, mutând restul la dreapta.
  • List.remove: Șterge un element după valoare (remove), după poziție (removeAt) sau ultimul element (removeLast).
  • List.operator+: a + b creează o listă nouă cu elementele lui a urmate de cele ale lui b.
  • Iterable.expand: expand transformă fiecare element în zero sau mai multe elemente și le pune cap la cap; followedBy lipește două iterabile.