Во-первых, обратите внимание, что по-прежнему является делегатом - просто: скорее, он использует лямбда-синтаксис , а не анонимный метод (это по сути означаетточно так же, хотя).
Что касается того, как это исправить: просто уберите ;
:
l.Find((ABC a) => a.A == 4);
или более просто:
l.Find(a => a.A == 4);
(скобки необходимы только необходимо , если у вас несколько параметров; явные типы полезны для устранения неоднозначности)