Wenn Sie in .NET 4.0 oder höher sind, können Sie einfach eine implizite Umwandlung durchführen:
%Vor% Dies verwendet generische Kontravarianz in IEnumerable<out T>
- d. h. da Sie immer nur etwas aus von IEnumerable
erhalten, können Sie IEnumerable<T>
implizit in IEnumerable<U>
konvertieren, wenn T : U
. (Es verwendet auch das List<T> : IEnumerable<T>
.)
Andernfalls müssen Sie jedes Element mit LINQ umwandeln:
%Vor% Seit .NET 4.0 können Sie List<Person>
an eine Methode mit einem Parameter vom Typ IEnumerable<IPerson>
ohne implizites oder explizites Casting übergeben.
Das implizite Casting erfolgt automatisch (wenn möglich), dank Contravarianz
Sie können dies tun:
%Vor%Tags und Links c#