It is derived from Collection<T> , which uses IList<T> items to store data. For example, when adding and removing elements, the ObservableCollection simply delegates the call to the base class.
protected override void InsertItem(int index, T item) { this.CheckReentrancy(); base.InsertItem(index, item); this.OnPropertyChanged("Count"); this.OnPropertyChanged("Item[]"); this.OnCollectionChanged(NotifyCollectionChangedAction.Add, (object) item, index); }
Collection in C # in an ordered data structure, so the relative order of elements after insertion and deletion should not be changed.
source share