ざこノート
2018-11-10 [C# ]

[C#] Collection<T>の使用用途とListとの違い

Collection<T>は独自コレクションを実装する時に継承して使用します。Collection<T>は内部でList<T>を保持していますが、拡張できるように仮想メソッドが定義されています。

環境

  • Windows 10 Pro 64bit 1803
  • Visual Studio Community 2017 15.8.2
  • .NET Framework 4.6.1
  • C# 7.0

結果

Collection<T>は以下のような実装になっています。
仮想メソッドをオーバーライドすることで、独自チェックや通知イベントを簡単に実装できます。

private IList<T> items;

public Collection()
{
    this.items = (IList<T>) new List<T>();
}

protected virtual void ClearItems()
{
    this.items.Clear();
}

protected virtual void InsertItem(int index, T item)
{
    this.items.Insert(index, item);
}

protected virtual void RemoveItem(int index)
{
    this.items.RemoveAt(index);
}

protected virtual void SetItem(int index, T item)
{
    this.items[index] = item;
}

感謝