如何使用linq匹配每个单词的搜索字符串?即“苹果橙”应与“橙苹果”匹配,但不能与“苹果橙”相匹配。
此查询可用于查找是否有任何单词匹配,我无法使其适用于All()匹配的单词。
var match = "apple orange pear".Split()
.Intersect("orange pear fred".Split())
.Any();
这个想法非常类似于这个主题。 Word-wise super string search for given string
答案 0 :(得分:1)
检查核对清单中是否存在每个单词:
var words = "orange pear fred".Split();
var wordsToCheck = "apple orange".Split();
var match = words.All(w => wordsToCheck.Contains(w));
或产生两个序列的差异。如果没有差异元素,那么所有单词都在核对清单中:
var match = !words.Except(wordsToCheck).Any();