2010-04-15 2 views
2

Я пытаюсь получить все активы, в которых свойство класса равно одному из значений в selectedIClassesList;Помогите мне с запросом Linq, пожалуйста,

Что-то вроде этого:

from x in Assets where selectedIClassesList.Contains(x.Class) select x 
+0

Похоже, вам нужно дать нам немного больше контекста в вашем вопросе. Используете ли вы LINQ для объектов, LINQ to SQL, LINQ to Entities и т. Д.? Как выглядит ваш класс Assets? Как выглядит тип Assets.Class? Как выглядит интерфейс IClassesList? – StriplingWarrior

ответ

3

Вы могли бы сделать присоединиться ...

var query = from a in Assets 
      join s in selectedClassesList on a.Class equals s 
      select a; 
+0

+1 Ударь меня! –

0

Если я понимаю правильно, ваша проблема в том, что IClassesList не имеет содержит метод ? Если IClassesList является IEnumerable того же типа объектов, что и x.Class, это должно работать.

from x in Assets where selectedIClassesList.Any(s => s == x.Class) select x 

Для лучшей производительности вам было бы полезно создать словарь.

var selectedClassesDict = selectedIClassesList.ToDictionary(s => s); 
var selectedAssets = from a in Assets 
        where selectedClassesDict.ContainsKey(a.Class) 
        select a; 
+0

Невозможно создать постоянное значение типа 'Closure type'. В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid). – Agzam