Если вы хотите перебрать список и сделать что-то в зависимости от типа элемента, вы можете сделать что-то вроде этого:
foreach(var item in list)
{
if(item is Child1)
{
var child1 = (Child1)item;
child1.DoSomething();
}
else if(...)
{
...
}
}
, если вы используете c # 7, тогда вы можете сделать это лучше, напрямую создав временную переменную.в операторе if:
foreach(var item in list)
{
if(item is Child1 child1)
{
child1.DoSomething();
}
else if(...)
{
...
}
}
или вы можете использовать оператор as
, как показано ниже:
foreach(var item in list)
{
var child1 = item as Child1;
if(item != null)
{
child1.DoSomething();
}
var chil2 = item as Child2;
...
}