ich eine Funktion geschrieben haben, die eine generische IEnumerable nehmen und diese Objekte abbilden (wenn möglich) auf Objekte I für einen Algorithmus verwendet werden soll. Ich habe nicht viel Erfahrung mit generischen Objekten oder IEnumberables, also wollte ich um Rat fragen.Arbeiten mit generischen IEnumerable <T>
Ich habe diesen Code geschrieben:
public static IEnumerable<OtherObject> MyObjectToOtherObject<T>(IEnumerable<T> objects)
{
if (objects.GetType() == typeof(MyObject))
{
var data = (IEnumerable<MyObject>)objects;
return data.Select(x => new OtherObject() { // Map the attributes });
}
else
return null;
}
Dies gilt nicht in meinem Code arbeiten, da es null zurück, obwohl die Eingangsliste des MyObject
Typ ist. Ich kann einfach nicht herausfinden, wie ich meine IEnumerable<T>
zu IEnumerable<MyObject>
zu werfen. Gibt es etwas, was ich falsch mache?
Vielen Dank im Voraus!
Ich bin für die ganze Verwirrung leid. Ich habe das falsch gefragt. Alex hat mir genug geholfen, danke!
Verwenden objects.OfType
von 'Object' meinen Sie das in Wurzel aller gebaut Objekte oder deine eigene Klasse? Wenn Letzteres, wähle einen besseren Namen !! – Jamiec
'IEnumerable' ist kovariant, also was versuchen Sie zu tun, außer 'IEnumerable