List.from în Dart

Creează o listă nouă cu elementele unei colecții; of verifică tipul la compilare, from la rulare.

Sintaxă
List<E>.from(Iterable elements, {bool growable = true})
List<E>.of(Iterable<E> elements, {bool growable = true})

Ce face List.from

Ambele constructoare copiază elementele unui iterable într-o listă nouă, extensibilă (sau fixă, cu growable: false). Lista nouă este independentă de sursă.

List.of cere ca elementele să aibă deja tipul E, iar compilatorul verifică asta. List.from acceptă orice iterable și verifică fiecare element abia la rulare, deci poate „îngusta” tipul (din List<Object> în List<String>), dar poate da erori la rulare. Preferă List.of sau toList() când tipurile se potrivesc.

Parametri

Parametru Descriere
elements Colecția copiată.
growable false pentru o listă de lungime fixă.

Ce returnează

O List<E> nouă.

Exemple

Exemplul 1: Copii independente

void main() {
  final orase = {'Iași', 'Cluj', 'Sibiu'};
  final lista = List.of(orase);
  lista.add('Arad');
  print(lista);
  print('set-ul rămâne: $orase');

  final note = [9, 10];
  final copie = List<int>.from(note)..add(7);
  print('$note / $copie');
}

Rezultat

[Iași, Cluj, Sibiu, Arad]
set-ul rămâne: {Iași, Cluj, Sibiu}
[9, 10] / [9, 10, 7]

Exemplul 2: from îngustează tipul la rulare

void main() {
  final List<Object> amestec = ['Ana', 'Mihai'];
  final nume = List<String>.from(amestec);
  print(nume.map((n) => n.toUpperCase()).toList());

  final List<Object> gresit = ['Ana', 7];
  try {
    List<String>.from(gresit);
  } on TypeError {
    print('TypeError: 7 nu este String');
  }
}

Rezultat

[ANA, MIHAI]
TypeError: 7 nu este String

Greșeli frecvente

  • Folosești List.from fără tip explicit (List.from(x)) și obții List<dynamic>, pierzând verificarea tipurilor. Scrie List<int>.from(x) sau folosește List.of.

Comenzi înrudite

  • Iterable.toList: toList copiază elementele într-o listă nouă; toSet le copiază într-un set nou, fără duplicate.
  • List.filled: List.filled creează o listă cu aceeași valoare pe fiecare poziție; List.generate calculează fiecare element din poziția lui.
  • List.empty: List.empty creează o listă goală; List.unmodifiable creează o copie care nu mai poate fi schimbată.
  • Set.from: Creează un set nou din elementele unei colecții; Set.of verifică tipul la compilare, Set.from la rulare.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: List.from

Ai o nelămurire despre utilizarea comenzii List.from sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.