假设我有以下界面
public interface IFilter<T>
{
    IEnumerable<T> ApplyFilter(IEnumerable<T> list);
}
像这样的具体实现:
public class PetFilter: IFilter<Dog>, IFilter<Cat>
{
    public IEnumerable<Dog> ApplyFilter(IEnumerable<Dog> list)
    {
         return ApplyFilter<Dog>(list);
    }
    public IEnumerable<Cat> ApplyFilter(IEnumerable<Cat> list)
    {
         return ApplyFilter<Cat>(list);
    }
    private IEnumerable<T> ApplyFilter<T>(IEnumerable<T> list)
    {
         // do the work here
    }
}
鉴于它们共享相同的实现,有什么方法可以避免必须为 Dog 和 Cat 实现单独的方法?