Ich habe ein Objekt, das ich mit über eine Reflexion Anruf endete:Objekt [] Von Readonlycollection <T>
object readOnlyCollectionObject = propertyInfo.GetValue(someEntity, null);
Ich weiß, dass dieses Objekt eine generische Readonlycollection ist. Es könnte ein ReadOnlyCollection<Cat>
, ReadOnlyCollection<Dog>
, etc. sein. Für Argument willen, lassen Sie uns einfach sagen, es ist ein ReadOnlyCollection<T>
.
Obwohl ein Hund von einem Objekt abgeleitet ist, weiß ich, dass ein ReadOnlyCollection<Dog>
nicht von einem ReadOnlyCollection<object>
abgeleitet ist. Selbst wenn ich Reflection zum Aufruf der CopyTo-Methode verwende, muss ich den spezifischen Typ von ReadOnlyCollection kennen, was ich vermeiden möchte.
Ich möchte wissen, wie Sie alle Elemente aus der ReadOnlyCollection als ein Array von Objektreferenzen erhalten, ohne den spezifischen Typ (T) von ReadOnlyCollection<T>
zu kennen.
Problem ist die erste Zeile wird nicht kompilieren, weil Sie nicht von IEnumerable zu ICollection konvertieren können. – hkdk3107
Geändert. Es muss ein schwer zu treffender Tippfehler gewesen sein. – erikkallen
Diese Lösung ist sehr sauber, weil es Generika überhaupt nicht interessiert. – hkdk3107