using System;
using System.Collections.Generic;
using System.Linq;
public interface I {}
public class A : I {}
public class Test
{
public static void foo(List<I> list)
=> Console.WriteLine(list.Count);
public static void bar(IEnumerable<I> list)
=> Console.WriteLine(list.Count());
public static void Main()
{
var list = new List<A> {
new A(),
new A()
};
foo(list.Cast<I>().ToList());
bar(list);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgaW50ZXJmYWNlIEkge30KCnB1YmxpYyBjbGFzcyBBIDogSSB7fQoKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBmb28oTGlzdDxJPiBsaXN0KSAKCQk9PiBDb25zb2xlLldyaXRlTGluZShsaXN0LkNvdW50KTsKCQkKCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXIoSUVudW1lcmFibGU8ST4gbGlzdCkgCgkJPT4gQ29uc29sZS5Xcml0ZUxpbmUobGlzdC5Db3VudCgpKTsKCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBsaXN0ID0gbmV3IExpc3Q8QT4geyAKCQkJbmV3IEEoKSwKCQkJbmV3IEEoKQoJCX07CgkJCgkJZm9vKGxpc3QuQ2FzdDxJPigpLlRvTGlzdCgpKTsKCQliYXIobGlzdCk7Cgl9Cn0=