No se puede pasar una Lista <Foo> a un método que espera una Lista <IFoo>, donde Foo: IFoo

Tengo una claseFoo implementando elIFoo interfaz. Tengo un método tomando unList<IFoo> como parámetro. Sin embargo, no puede convertir deList<Foo> aList<IFoo> - esto me sorprende, ya queFoo implementa elIFoo interfaz

¿Cómo puedo evitar esto y por qué ocurre esto? (Siempre es bueno aprender de los errores)