objA может содержать объекты класса A или B, поэтому вы не можете напрямую присвоить результат вашего запроса objB.
Если вы уверены, что каждый объект, передающий Where
, на самом деле является объектом класса B, вы можете написать:
objB = objA.Where(x => x.ID == "").Cast<B>().ToList();
Это приводит к тому, что каждый объект вставляет объект Where в B, поэтому вы получаете IEnumerable<B>
, который превращается в List<B>
при вызове ToList
.
Если также объекты типа A могут проходить через Where, при использовании OfType вместо Cast используются только те объекты, которые относятся к типу B:
objB = objA.Where(x => x.ID == "").OfType<B>().ToList();