List에서 상속하지만 List.Contains가 느리기 때문에 속도가 느린 C# 라이브러리 클래스가 있습니다. 많은 클라이언트 코드가이 클래스에 의존하고 인터페이스를 변경하는 데 너무 복잡하기 때문에 Dictionary 또는 HashSet과 같은 클래스에서 상속하도록 클래스를 변경할 수 없습니다. 이 방법을 변경하지 않고 속도를 낼 수있는 쉬운 방법이 있습니까? 목록 중 일부는 매우 커서 우리는 메모리에 두 개의 사본이 필요하지 않습니다. List의 모든 메소드를 오버라이드하고 싶지는 않습니다.속도 향상 list.contains
public class UniqueList<T> : List<T>, IList<T>
{
public new void Add(T item)
{
if (!this.Contains(item) && item != null)
{
base.Add(item);
}
}
수업은 매우 문제가 있습니다. 누군가가 UniqueList의 컴파일 타임 타입을 사용하지 않고'List'또는'IList '을 사용하면'new' 때문에'Add' 메소드가 사용되지 않습니다 –
당신이 옳았습니다. 의도적 인 것이 아니 었습니다 (나는 쓰지 않았습니다). 아무도 그렇게하기를 원하지 않는 사람이있을 수 있다고 불평하지 않았기 때문입니다. –