2017-12-28 15 views
3

Gegeben List<string> Wie alle Datensätze in einer Entität zurückgegeben werden, die ein Feld enthält, das ein oder mehrere Wörter aus der Liste enthält.Linq gibt alle Datensätze aus Entitäten zurück, in denen ein Feld ein oder mehrere Wörter aus einer Liste enthält

habe ich versucht, die unterhalb derer nicht funktioniert und ich fange im Kreis zu gehen um ein wenig:

List<string> searchwords = new List<string>() {"word1","word2"}; 

var results = context.activities 
    .Where(a => a.Title.Contains(searchwords.Any().ToString())).ToList(); 

Antwort

5

Das Problem mit dem aktuellen Code:

var results = context.activities.Where(a => 
        a.Title.Contains(searchwords.Any().ToString())).ToList(); 

ist, dass Sie deine Nadel und Heuhaufen rückwärts. Die Tatsache, dass Sie .ToString() auf Any() aufrufen mussten, sollte Ihnen einen Tipp gegeben haben. Any() gibt eine bool zurück, die Sie in eine Zeichenfolge umwandeln. Sie überprüfen also, ob Title die Zeichenfolge "True" enthält. Definitiv nicht was du willst. Sie möchten etwas näher zu:

var results = context.activities 
       .Where(a => searchwords.Any(searchWord => a.Title.Contains(searchWord))); 
Verwandte Themen