public ReadOnlyCollection<T> ToReadOnlyCollection() { // Can we use the stored array? T[] items; if (_size == _items.Length) { items = _items; } else { items = ToArray(); } _items = Array.Empty<T>(); _size = 0; _version++; return new TrueReadOnlyCollection<T>(items); }