按任意顺序匹配所有单词
本文关键字:单词 任意 顺序 | 更新日期: 2023-09-27 18:08:12
如何使用linq匹配每个单词的搜索字符串?即。"apple orange"应该与"orange apple"匹配,而不是"apple orange fred"。
这里的查询可以查找是否有任何单个单词匹配,我无法让它为All()单词匹配工作。
var match = "apple orange pear".Split()
.Intersect("orange pear fred".Split())
.Any();
这个想法与这个线程非常相似。搜索给定字符串
检查每个单词是否存在:
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();