List.removeRange în Dart

List: liste Dart 2.0

removeRange șterge elementele dintre două poziții; clear golește toată lista.

Sintaxă
void removeRange(int start, int end)
void clear()

Ce face List.removeRange

removeRange(start, end) șterge elementele de pe pozițiile start, start + 1, …, end - 1. Poziția end nu este inclusă, ca la sublist. Lista se scurtează cu end - start elemente.

clear() șterge toate elementele, iar lungimea devine 0. Variabila rămâne aceeași listă, deci oricine are o referință la ea vede lista goală.

Parametri

Parametru Descriere
start Prima poziție ștearsă.
end Poziția de după ultimul element șters (nu este inclusă).

Ce returnează

Nimic (void).

Exemple

Exemplul 1: Păstrarea ultimelor mesaje

void main() {
  final jurnal = ['m1', 'm2', 'm3', 'm4', 'm5', 'm6'];
  const maxim = 3;
  if (jurnal.length > maxim) {
    jurnal.removeRange(0, jurnal.length - maxim);
  }
  print(jurnal);
}

Rezultat

[m4, m5, m6]

Exemplul 2: clear golește lista pentru toți

void main() {
  final cos = ['mere', 'pâine'];
  final acelasiCos = cos;
  cos.clear();
  print('cos: $cos, acelasiCos: $acelasiCos, lungime: ${cos.length}');
}

Rezultat

cos: [], acelasiCos: [], lungime: 0

Greșeli frecvente

  • Crezi că end este inclus și ștergi un element mai puțin decât voiai.

Comenzi înrudite

  • List.remove: Șterge un element după valoare (remove), după poziție (removeAt) sau ultimul element (removeLast).
  • List.sublist: sublist copiază o porțiune a listei într-o listă nouă; getRange dă aceeași porțiune ca iterable leneș.
  • List.removeWhere: removeWhere șterge toate elementele care trec testul; retainWhere le păstrează doar pe ele.