2016-04-10 5 views
1

Ich schreibe einen Suchalgorithmus. Für den letzten Teil davon möchte ich ihre Suche in einzelne Wörter aufteilen und dann alle Ergebnisse finden, die mindestens eines dieser Wörter enthalten. Gibt es irgendeine Funktion, die wie "ContainsAny" unten funktioniert? Wie kann ich das anders machen?Finden Sie Ergebnisse mit mindestens einem Begriff aus Array

string[] splitStr = text.Split(); 
result = db.Table.Where(x => x.Name.ContainsAny(splitStr).FirstOrDefault(); 

Zum Beispiel, wenn sie für „Metal Löffel“ beide „Metal Chair“ und „Löffel Buch“ suchen würde valide Ergebnisse, weil jeweils mindestens einen der Suchbegriffe enthält.

+0

regex oder schneiden –

Antwort

1

Es gibt keine ContainsAny, aber Sie können Kombination von Any und Contains wie folgt verwenden:

var results = db.Table.Where(x => splitStr.Any(s => x.Name.Contains(s))); 
Verwandte Themen