Можно использовать метод
RemoveAll для удаления всех вхождений удовлетворяющих передаваемому предикату:
public static void ClearPayment()
{
Console.Write("Введите код: ");
int C = int.Parse(Console.ReadLine());
if (payments.RemoveAll(p => p.Code == C) > 0)
Console.WriteLine("Указанный платеж удален ");
else
Console.WriteLine("Платежа с таким кодом не существует");
}
RemoveAll вернет количество элементов, которые были удалены из списка.
Еще один способ - использовать комбинацию методов из группы Find и Remove:
FindIndex +
RemoveAt
или
Find +
Remove
Отличие от
Exists в том, что эти методы возвращают индекс (FindIndex) или сам элемент (Find), а не только проверяют существование подходящего элемента.