Selección de LINQ por tipo de objeto

Tengo una colección que contiene dos tipos de objetos A y B.

Class Base{}
Class A : Base {}
Class B : Base {}

List<Base> collection = new List<Base>();
collection.Add(new A());
collection.Add(new B());
collection.Add(new A());
collection.Add(new A());
collection.Add(new B());

Ahora quiero seleccionar los objetos de la colección en función de su tipo (A o B, no ambos).

¿Cómo puedo escribir una consulta LINQ para esto? Por favor, ayúdame. De lo contrario, necesito recorrer la colección, lo cual no quiero. Gracias.

Editar:

Gracias por toda tu ayuda. Ahora puedo usar OfType () de LINQ. Pero creo que en mi caso no funcionará. Mi situacion es

Class Container
{
  List<Base> bases;
}

List<Container> containers = new List<Container>();

Ahora quiero seleccionar el contenedor de los contenedores, que tiene al menos un tipo A. Puede que LINQ no pueda hacer esto. Muchas gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta