2013-02-25 3 views
1

У меня есть кусок кода:Где положение в LINQ запроса с помощью функции

IList<Opportunity> filteredOpportunityProperties = new List<Opportunity>(); 
List<LookupWithIntId> selectedProperties = opportunityFilter.PropertyTypes; 
List<string> propertyTypes = selectedProperties.Select(item => item.Name).ToList(); 

opportunities.Where((item) => 
    { 
     string productType = item.Properties[0].ProductType; 
     bool propertyMatch = propertyTypes.Any(propTypes => productType.Contains(propTypes)); 
     if (propertyMatch) select item; 
    }); 

если условие выполнено, я хочу этот пункт должен быть выбран. Однако, я получаю ошибку:

Embedded statement cannot be a declaration or labeled statement

Любые предложения!

+0

ничего себе это безумие! Я не знал, что вы можете сделать это с помощью linq! –

ответ

5

В вашем ИНЕКЕ, измените эту строку:

if(propertyMatch) select item; 

Для этого:

return propertyMatch; 

где положение будет вернуть товар, если результат предикат истинен, так что вам просто нужно вернуться boolean result.

+0

Спасибо! это работает. – SaiBand

Смежные вопросы