从数组中查找至少有一项的结果

Find Results with at Least One term from array

我正在编写搜索算法。对于它的最后一部分,我想将他们的搜索分成单独的词,然后找到至少包含其中一个词的任何结果。是否有任何功能可以像下面的 "ContainsAny" 那样工作?否则,我该如何实现?

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

例如,如果他们搜索 "Metal Spoon","Metal Chair" 和 "spoon book" 都将是有效结果,因为每个都至少包含一个搜索词。

没有 ContainsAny,但您可以像这样使用 Any and Contains 的组合:

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