remove method

  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. 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? element) {
  if (lock) return _internal.remove(element);

  final index = super.indexOf(element);
  if (index != -1) {
    lock = true;
    added = const {};
    removed = {index: super[index]};
    changed = const {};
    _internal.remove(element);
    notifyListeners();
    return true;
  }
  return false;
}