remove method

  1. @override
bool remove(
  1. Object? value, {
  2. bool notifyListeners = true,
})
override

Removes the first occurrence of value from this list.

Returns true if value was in the list, false otherwise. The list must be growable.

final parts = <String>['head', 'shoulders', 'knees', 'toes'];
final retVal = parts.remove('head'); // true
print(parts); // [shoulders, knees, toes]

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

final parts = <String>['shoulders', 'knees', 'toes'];
// Note: 'head' has already been removed.
final retVal = parts.remove('head'); // false
print(parts); // [shoulders, knees, toes]

Implementation

@override
bool remove(Object? value, {bool notifyListeners = true}) {
  if (value == null && !contains(null)) {
    return false;
  } else if (value != null && value is! E) {
    return false;
  }
  final index = notifyListeners ? this.value.indexOf(value as E) : null;
  final removed = this.value.remove(value);
  if (notifyListeners && removed) {
    notifyAllListeners(CollectionEventType.removal, index, value as E);
  }
  return removed;
}