I have a List<BaseClass>
with members in it. I would like to cast the list (and all its members specifically) to a type List<ChildClass>
, where ChildClass
inherits BaseClass
. I know I can get the same result through a foreach:
List<ChildClass> ChildClassList = new List<ChildClass>();
foreach( var item in BaseClassList )
{
ChildClassList.Add( item as ChildClass );
}
But is there a neater way of doing this? Note - this is done on the WP7 platform.
You can do this if you are really sure all items are castable:
ChildClassList = BaseClassList.Cast<ChildClass>().ToList();
Your current code adds null
if a BaseClass item cannot be cast to ChildClass. If that was really your intention, this would be equivalent:
ChildClassList = BaseClassList.Select(x => x as ChildClass).ToList();
But i'd rather suggest this, which includes type checking and will skip items that don't match:
ChildClassList = BaseClassList.OfType<ChildClass>().ToList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With