<PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />

System.Collections.Generic.SynchronizedCollection<T>

namespace System.Collections.Generic { public class SynchronizedCollection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection { public int Count { get; } protected List<T> Items { get; } public object SyncRoot { get; } public T this[int index] { get; set; } object IList.this[int index] { get; set; } public SynchronizedCollection(); public SynchronizedCollection(object syncRoot); public SynchronizedCollection(object syncRoot, IEnumerable<T> list); public SynchronizedCollection(object syncRoot, params T[] list); public void Add(T item); public void Clear(); public void CopyTo(T[] array, int index); public bool Contains(T item); public IEnumerator<T> GetEnumerator(); public int IndexOf(T item); public void Insert(int index, T item); public bool Remove(T item); public void RemoveAt(int index); protected virtual void ClearItems(); protected virtual void InsertItem(int index, T item); protected virtual void RemoveItem(int index); protected virtual void SetItem(int index, T item); } }