если нужно держать кучу разных обьктов разных типов то можно сделать List<object> - все классы наследуются от него.
ещё у списков есть такая крута штука:
List<object> list=new List<object>();
list.ForEach(delegate(object obj)
{
//тут происходит перебор всех обьектов списка. obj - текущий елемент. их можно удалять сдесь, и вобще делать что хочешь.
});