2016-12-01 2 views
0

В моей программе элемент должен создаваться только в том случае, если программа определяет, что элемент еще не содержится в коллекции.Поиск по Linq с использованием нескольких условий

Вот мой код для ознакомления. Это не работает, и я не могу понять, почему.

  foreach(var user in db.Gebruikers) 
      { 
       foreach(var parameter in db.ParametersWerkvorms) 
       { 
        if(db.ZoekresultaatWerkvorms.Where(r => r.Werkvorm.Equals(parameter.Naam))) // ?????? 

// If user.username = db.ZoekresultaatWerkvorms.item.username && parameter.naam == db.ZoekresultaatWerkvorms.item.parameter{ 
        var newItem = new ZoekResultaatParameter(); 
        newItem.Parameter = parameter.Naam; 
        newItem.Opgezocht = 0; 
        newItem.Gebruikersnaam = user.Gebruikersnaam; 
// Write newItem to database 
       } 
      } 
     } 
+0

Использование '.Where' возвращает' IEnumerable', содержащие элементы, которые проходят оговорку. Вы можете проверить, содержит ли этот IEnumerable элементы или нет. – RandomStranger

+0

как получится 'if (db.ZoekresultaatWerkvorms.Where (r => r.Werkvorm.Equals (parameter.Naam))) // ??????' не дает вам никакой ошибки сборки? – user3150546

ответ

2

.Where возвращает IEnumerable<T>, вам нужно bool.

Попробуйте что-то вроде: if(db.ZoekresultaatWerkvorms.Any(r => r.Werkvorm.Equals(parameter.Naam)))

+0

Спасибо, что работает. :) Думаю, я мог бы использовать .length, чтобы соответствовать логическому. – user3117628

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