У меня есть объект, который я закончил с помощью вызова отражения:объекта [] из ReadOnlyCollection <T>
object readOnlyCollectionObject = propertyInfo.GetValue(someEntity, null);
Я знаю, этот объект является общим ReadOnlyCollection. Это может быть ReadOnlyCollection<Cat>
, ReadOnlyCollection<Dog>
и т. Д. Для аргументации просто скажем, что это ReadOnlyCollection<T>
.
Несмотря на то, что собака происходит от объекта, я знаю, что ReadOnlyCollection<Dog>
не является результатом ReadOnlyCollection<object>
. Поэтому, даже если я использую отражение для вызова метода CopyTo, мне все равно нужно знать определенный тип ReadOnlyCollection, чего я хочу избежать.
Я хочу знать, как получить все элементы из ReadOnlyCollection как массив ссылок на объекты без необходимости знать конкретный тип (T) ReadOnlyCollection<T>
.
Проблема в первой строке не будет скомпилирована, потому что вы не можете конвертировать из IEnumerable в ICollection. – hkdk3107
Изменено. Должно быть, это опечатка с твердым оглавлением. – erikkallen
Это решение очень аккуратно, потому что оно вообще не заботится о дженериках. – hkdk3107