remove method Null safety

  1. @override
bool remove(
  1. Object? element
)
override

Removes the first occurrence of value from this list.

Returns true if value was in the list, false otherwise.

var parts = ['head', 'shoulders', 'knees', 'toes'];
parts.remove('head'); // true
parts.join(', ');     // 'shoulders, knees, toes'

The method has no effect if value was not in the list.

// Note: 'head' has already been removed.
parts.remove('head'); // false
parts.join(', ');     // 'shoulders, knees, toes'

The list must be growable.

Implementation

@override
bool remove(Object? element) {
  var didRemove = false;

  _context.conditionallyRunInAction(() {
    final index = _list.indexOf(element as T);
    if (index >= 0) {
      _list.removeAt(index);
      _notifyElementUpdate(index, null, element, type: OperationType.remove);
      didRemove = true;
    }
  }, _atom);

  return didRemove;
}