Я думаю, что используемый вами инструмент вызывает путаницу. Индексатор в списке явно не реализован как реализация IList
.
public class List<T> : ICollection<T>, IEnumerable<T>, IEnumerable, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection, IList
{
(...)
public T this[int index] { get; set; }
Вот простой фрагмент с классом, который реализует два интерфейса, чтобы доказать, что можно предоставить одну реализацию для двух интерфейсов.
public interface IOne{void MyMethod();}
public interface ITwo{void MyMethod();}
public class MyClass: IOne, ITwo
{
public void MyMethod()
{
Console.WriteLine("Hello!");
}
}
public static void Main()
{
new MyClass().MyMethod();
}