2016-04-10 18 views
1

Bir arama algoritması yazıyorum. Son kısmı için, aramalarını tek tek sözcüklere bölmek ve bu kelimelerin en az birine sahip olan sonuçları bulmak istiyorum. Aşağıda "ContainsAny" gibi bir şey çalışacak herhangi bir işlev var mı? Aksi halde, bunu nasıl yapabilirim? onlar "Metal kaşık" "Metal Sandalye" ve "kaşık kitabı" her ikisi için arama yaparsanız her bir arama terimleri en az birini içerdiği içinile ara En az bir terim ile sonuçları bul

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

Örneğin, geçerli sonuçlar olurdu.

+0

regex veya kesişir –

cevap

1

hiçbir ContainsAny yoktur ancak böyle Any ve Contains kombinasyonunu kullanabilirsiniz:

var results = db.Table.Where(x => splitStr.Any(s => x.Name.Contains(s))); 
İlgili konular