List から継承する C# ライブラリ クラスがありますが、List.Contains が遅いため低速です。多くのクライアント コードがこのクラスに依存しており、インターフェイスを変更するには複雑すぎるため、Dictionary や HashSet などの他のクラスから継承するようにクラスを変更することはできません。このメソッドを変更せずに高速化する簡単な方法はありますか? 一部のリストは非常に大きいため、メモリ内に 2 つのコピーは必要ありません。List のすべてのメソッドもオーバーライドしたくありません。
public class UniqueList<T> : List<T>, IList<T>
{
public new void Add(T item)
{
if (!this.Contains(item) && item != null)
{
base.Add(item);
}
}