<PackageReference Include="System.Reactive" Version="6.1.0" />

System.Reactive.ListObservable<T>

public class ListObservable<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IObservable<object>
Represents an object that retains the elements of the observable sequence and signals the end of the sequence.
namespace System.Reactive { public class ListObservable<[System.Runtime.CompilerServices.Nullable(2)] T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IObservable<object> { public T Value { get; } public T this[int index] { get; set; } public int Count { get; } public bool IsReadOnly { get; } public ListObservable(IObservable<T> source); public int IndexOf(T item); public void Insert(int index, T item); public void RemoveAt(int index); public void Add(T item); public void Clear(); public bool Contains(T item); public void CopyTo(T[] array, int arrayIndex); public bool Remove(T item); public IEnumerator<T> GetEnumerator(); public IDisposable Subscribe(IObserver<object> observer); } }