Как уже упоминалось в комментарии, вам нужно добавить ограничение общего типа, чтобы сообщить компилятору, что ваш тип T полностью подходит для извлечения этих членов.
У вас может быть большое количество классов, что должно быть причиной того, что вы используете дженерики, но, по крайней мере, они должны иметь базовый класс, который определяет члены Display, Description и Id, а затем использовать его в качестве базового класса ограничения будет компилироваться, если только не у всех ваших классов есть эти члены, поэтому ваш код логически неверен.
where T : TheBaseClass
Альтернативой, которая не так рекомендуется, является использование динамического.
from dynamic item in items
select new
{
Display = item.Display ?? "",
Description = item.Description ?? "",
Id = item.Id
}
Будет выдано исключение времени выполнения, если у типа элемента коллекции нет этих членов.
Хотя привязка во время выполнения может привести к несколько более низкой производительности.
Кстати, имя вашего идентификатора - antipattern, и имя не представляет логического значения переменных. Используйте предметы и предмет соответственно для коллекции и ее элементов.