c# - convert IList<Derived> to IReadOnlyCollection<Base> -
i have private field ilist<derivedclass> _elements , want create property returning ireadonlycollection<baseclass>.
public ireadonlycollection<baseclass> baseclasses { { return _elements; } // compile time error } how without running compile errors?
(afaik should work, t in ireadonlycollection<t> covariant)
use list<t>.asreadonly() method:
public ireadonlycollection<baseclass> baseclasses { { return _elements.cast<baseclass>().tolist().asreadonly(); } // compile time error } or since ireadonlycollection<t> covariant can skip cast<baseclass>:
public ireadonlycollection<baseclass> baseclasses { { return _elements.tolist().asreadonly(); } // compile time error } you skip tolist() if field list<t>, not ilist<t>.
Comments
Post a Comment