c# - Looping through a List of objects with the same base class and extracting a certain class? -
for example, have base class entity
, 2 sub classes derive this, lightentity
, playerentity
.
i have list<entity> entities
holds lightentity
s , playerentity
s.
i wish lightentity
s entities
.
i tried:
list<lightentity> lights = new list<lightentity>(); foreach (entity ent in entities) { if(ent lightentity) { lights.add(ent); } }
but doesn't compiler still seems think might try add entity
list of lightentity
.
i tried cast ent
lightentity
compiler says has no methods of converting entity
lightentity
.
you use oftype
filter entities type:
list<lightentity> lights = new list<lightentity>(); lights.addrange(entities.oftype<lightentity>());
or easier:
list<lightentity> lights = entities.oftype<lightentity>().tolist();
further reading
Comments
Post a Comment