Вы не указали, какую версию Visual Studio вы используете, но я предполагаю, что это VS 2008, поскольку IntelliSense правильно работает в VS 2010. Кроме того, об этом сообщили в Microsoft , и они заявил, что это будет исправлено в следующей версии Visual Studio, которая будет выпущена в 2010 году во время этого отчета.
Ваш код работает нормально и компилируется, потому что он правильный, поэтому вы не делаете ничего плохого. Если вы действительно хотите получить IntelliSense в VS 2008 для лямбда-выражения, вам необходимо указать тип:
foos.Max(Function(x As Foo) x.id)
При добавлении As Foo
вы должны получить поддержку IntelliSense. Повторюсь, проблема была решена в VS 2010.