次のインターフェースがあるとしましょう
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 の両方に別々のメソッドを実装する必要を回避する方法はありますか?