我们有一个 C# 库类,它继承自 List 但很慢,因为 List.Contains 很慢。我们不能将类更改为从 Dictionary 或 HashSet 之类的其他东西继承,因为很多客户端代码都依赖于该类,而且更改接口过于复杂。有没有一种简单的方法可以在不改变它的情况下加速这种方法?一些列表非常大,所以我们不希望内存中有两个副本。我们也不想覆盖 List 的每个方法。
public class UniqueList<T> : List<T>, IList<T>
{
public new void Add(T item)
{
if (!this.Contains(item) && item != null)
{
base.Add(item);
}
}