C# 中数组如何部分实现 IList
csharppublic class PartialArray上述代码中,我们定义了一个名为 PartialArray: IList { private T[] array; public PartialArray() { array = new T[0]; } public int Count => array.Length; public bool IsReadOnly => false; public T this[int index] { get => array[index]; set => array[index] = value; } public void Add(T item) { Array.Resize(ref array, array.Length + 1); array[array.Length - 1] = item; } public void Clear() { array = new T[0]; } public bool Contains(T item) { return array.Contains(item); } public void CopyTo(T[] array, int arrayIndex) { this.array.CopyTo(array, arrayIndex); } public IEnumerator GetEnumerator() { return array.AsEnumerable().GetEnumerator(); } public int IndexOf(T item) { return Array.IndexOf(array, item); } public void Insert(int index, T item) { Array.Resize(ref array, array.Length + 1); Array.Copy(array, index, array, index + 1, array.Length - index - 1); array[index] = item; } public bool Remove(T item) { int index = Array.IndexOf(array, item); if (index >= 0) { RemoveAt(index); return true; } return false; } public void RemoveAt(int index) { Array.Copy(array, index + 1, array, index, array.Length - index - 1); Array.Resize(ref array, array.Length - 1); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }}