Weil Cast()
nicht mit benutzerspezifischen Umwandlungen arbeitet - nur Referenzkonvertierungen (d. h. die normale Art der Konvertierung einer Referenz nach oben oder unten in der Vererbungshierarchie) und Boxing / Unboxing-Konvertierungen. Es ist nicht das Gleiche wie eine Umwandlung in Quellcode. Leider ist dies nicht eindeutig dokumentiert: (
EDIT: Um nur Jasons Kommentar in den Post zu bringen, können Sie das leicht mit einer Projektion umgehen:
%Vor%Sie können dies verwenden, um ein ähnliches Problem zu bekommen, das Ihnen hilft
IEnumerable Ergebnisse = originalList.Select (x = & gt; (string) x);