Я пытаюсь сформулировать запрос LINQ, чтобы выбрать подсписок списка, где он встречает где условие так:LINQ Cast перечислимых в список определенного типа
List<Entities.Base> bases = this.GetAllBases();
List<Entities.Base> thebases = from aBase in bases
where aBase.OfficeCD == officeCD
select aBase;
где Base это просто класс Entity:
public string BaseCD { get; set; }
public string BaseName { get; set; }
public string OfficeCD { get; set; }
public DateTime EffectiveDate { get; set; }
public DateTime ExpirationDate { get; set; }
Я получаю сообщение об ошибке «не удается преобразовать тип неявно System.Collections.Generic.IEnumerable в System.Collections.Generic.List
Так что я пытался применить оператор Cast, но это не удается. Теперь я вижу, что я не пытаюсь преобразовать тип элемента. Как я могу решить эту проблему? Благодаря!
Спасибо! Я только что подумал о чем-то - о том, что он исполнен. Эти запросы не будут выполняться до тех пор, пока они не будут перечислены. Я создаю их в DataLayer, который возвращает запросы. Предположим, что я выбираю ваш первый и имеет: public List GetBasesForFieldOfficeCD (string officeCD) {List databases = this.GetAllBases(); Список thebases = (из базы данных в базах, где aBase.OfficeCD == officeCD выбирает aBase) .ToList(); возвращать базы; } - Нужно ли перечислять/выполнять запросы перед возвратом? –
'ToList()' будет делать перечисление для вас. Конечный результат: «нормальная» структура данных, а не запрос. В принципе, список не помнит, как он был создан. С другой стороны, вы можете * предпочесть *, чтобы ваш метод GetBasesForFieldOfficeCD возвращал вместо этого отложенный запрос. В этом случае сделайте возвращаемый тип «IEnumerable» и удалите вызов 'ToList()'. –
Ani