Ich habe eine abstrakte KlasseIch will nicht Gussverfahren
public abstract ElementInfo : IElementMap, ISection
Ich habe eine Methode verwenden, die Argumente des Typs Liste akzeptiert < IElementMap>
public static IDictionary<int,int> GetOneToOneMap(List<IElementMap> abc, List<IElementMap> xyz,double asd)
Jetzt habe ich eine eine Liste Aufgabe Typ ElementInfo
List<ElementInfo> analyinfo;
wenn ich die Methode GetOneToOneMap
nenne ich bin derzeit das Senden der ersten Argument wie analyinfo.Cast<IElementMap>
, aber ich möchte nicht verwenden .Cast
Was sind bessere Möglichkeiten, dies zu tun?
http://automapper.org/ - „Eine Konvention basierte Objekt-Objekt-Mapper 100% Bio-und glutenfrei nimmt alle.. von dem Aufwand, ein Objekt auf ein anderes zu übertragen. " –
_ "Ich möchte nicht' .Cast' "_ Warum nicht - es scheint die richtige Lösung zu sein? Wenn Sie erklären können, warum Sie es nicht verwenden möchten, kann Ihnen vielleicht jemand eine bessere Alternative vorschlagen, die Ihren Bedürfnissen entspricht. –
Eine 'Liste' _ist nicht_ eine 'Liste ', sonst könnten Sie andere Implementierungen hinzufügen. Sie müssen entweder jedes Element in einen neuen Sammlungstyp umwandeln oder die Parametertypen in 'IEnumerable ' ändern, was kovariant ist. –