// A “DisconnectPeripheral()” method that accepts a type of peripheral, //and will disconnect all connected peripherals of that type. //For the “RemovePeripheral()” method, you could try using a Where() with a clause //checking for type not equal to the type to remove //(see Sept03Practice commit “SpaceCovered and LinesDrawn;”, Drawing.cs). public void DisconnectPeripheral(Peripheral peripheral) { if (Peripherals != null) { var toRemove = Peripherals.Where(x => typeof(Connector) == typeof(Connector)).ToList(); foreach (var item in toRemove) { Peripherals.Remove(item); } } }