length property

  1. @override
int length
override

The number of objects in this list.

The valid indices for a list are 0 through length - 1.

final numbers = <int>[1, 2, 3];
print(numbers.length); // 3

Implementation

@override
int get length => _list.length;
  1. @override
void length=(int value)
override

Setting the length changes the number of elements in the list.

The list must be growable. If newLength is greater than current length, new entries are initialized to null, so newLength must not be greater than the current length if the element type E is non-nullable.

final maybeNumbers = <int?>[1, null, 3];
maybeNumbers.length = 5;
print(maybeNumbers); // [1, null, 3, null, null]
maybeNumbers.length = 2;
print(maybeNumbers); // [1, null]

final numbers = <int>[1, 2, 3];
numbers.length = 1;
print(numbers); // [1]
numbers.length = 5; // Throws, cannot add `null`s.

Implementation

@override
set length(int value) {
  var len = _list.length;
  if (len == value) return;

  // Produce notifications if needed
  _notifyChangeLength(len, value);
  if (hasListObservers) {
    if (value < len) {
      _notifyListChange(value, removed: _list.getRange(value, len).toList());
    } else {
      _notifyListChange(len, addedCount: value - len);
    }
  }

  _list.length = value;
}