operator []= method

void operator []=(
  1. TKey key,
  2. Object? value
)

Implementation

operator []=(TKey key, Object? value) {
  if (value == null) {
    this._InternalRemoveItem(key);
  } else {
    // If the item was to be deleted, the deletion becomes an update.
    if (this._removedItems.remove(key)) {
      _InternalAddItemToChangeList(key, this._modifiedItems);
    } else {
      // If the property value was not set, we have a newly set property.
      if (!this.ContainsKey(key)) {
        _InternalAddItemToChangeList(key, this._addedItems);
      } else {
        // The last case is that we have a modified property.
        if (!this._modifiedItems.contains(key)) {
          _InternalAddItemToChangeList(key, this._modifiedItems);
        }
      }
    }

    this._items[key] = value;
    this._Changed();
  }
}