c# recorrer una lista
if (this.lista is List<B>)
{
List<B> list_B = this.lista as List<B>;
foreach (B b in list_B)
b.Tarea();
}
else if (this.lista is List<string>)
{
List<string> list_S = this.lista as List<string>;
foreach (string s in list_S)
Console.WriteLine(s);
}