Возможно, это - утешение: весь fstream's получил открытое (строковая константа &...) рядом с открытым (символьная константа *...) в рабочем проекте C++ 0x стандарт. (см., например, 27.8.1.6 для basic_ifstream объявления)
Поэтому, когда оно завершено и реализовало, это не будет больше получать Вас:)
Просто используйте метод расширения Enumerable.Cast
в неуниверсальном интерфейсе IEnumerable
, который можно сделать неявно в выражение запроса:
var query = from Picture picture in pictures
where ...
select ...;
или явно, например, если вы хотите использовать точечную нотацию:
var query = pictures.Cast<Picture>()
.Where(...)
.Select(...);
Альтернативой Cast
является OfType
- который в основном игнорирует любые элементы неправильного типа. В этом случае я думаю, что Cast
более уместен.
Если вы хотите преобразовать всю коллекцию в List
по какой-либо причине, это тоже просто:
List<Picture> list = pictures.Cast<Picture>().ToList();