Джефф Меркадо ответил правильно, но его можно сформулировать более просто.
.Where(e => e is T)
Этот вызов Enumerable.Where<Entity>
возвращает IEnumerable<Entity>
(отфильтрованная версия источника, которая является IEnumerable<Entity>
).Вызов не возвращает IEnumerable<T>
.
Enumerable.Select<TSource, TResult>
, и Enumerable.OfType<TResult>
может возвращать IEnumerable с типом, отличным от источника:
.Where(e => e is T)
.Select(e => e as T)
или
.Select(e => e as T)
.Where(e => e != null)
или
.OfType<T>()