List <object> .RemoveAll - Como criar um predicado apropriado

Essa é uma pergunta noob - ainda sou relativamente novo em C # e genéricos e completamente novo em predicados, delegados e expressões lambda ...

Eu tenho uma classe 'Consultas' que contém uma lista genérica de outra classe chamada 'Veículos'. Estou criando o código para adicionar / editar / excluir veículos da consulta pai. E, no momento, estou olhando especificamente para exclusões.

Pelo que li até agora, parece que posso usar Vehicles.RemoveAll () para excluir um item com um VehicleID específico ou todos os itens com um EnquiryID específico. Meu problema é entender como alimentar .RemoverTodo o predicado certo - os exemplos que eu vi são muito simplistas (ou talvez sejam simplistas demais devido à minha falta de conhecimento de predicados, delegados e expressões lambda).

Então, se eu tivesse umList<Of Vehicle> Vehicles onde cada veículo tinha umEnquiryIDcomo eu usariaVehicles.RemoveAll() remover todos os veículos para um determinado EnquiryID?

Entendo que existem várias abordagens para isso, então eu gostaria de ouvir as diferenças entre as abordagens - por mais que eu precise fazer alguma coisa funcionar, esse também é um exercício de aprendizado.

Como uma pergunta complementar, uma lista Genérica é o melhor repositório para esses objetos? Minha primeira inclinação foi para uma coleção, mas parece que estou desatualizada. Certamente os genéricos parecem ser os preferidos, mas estou curioso quanto a outras alternativas.

questionAnswers(5)

yourAnswerToTheQuestion