using System;
using System.Collections.Generic;
public class Program
{
class A
public virtual void Do()
Console.WriteLine("A.Do()");
}
class B : A
public override void Do()
Console.WriteLine("B.Do()");
public static void Main()
IEnumerable<A> enumerable =
new B[] {
new B(),
new B()
};
IList<B> list = (IList<B>) enumerable;
list[0].Do();