如何测试列表a的所有项目都在列表b中

时间:2011-02-11 14:56:07

标签: linq

我有一系列搜索词和一个句子。我需要测试该句子是否包含所有搜索词:

var searchTerms = "fox jumped".Split(' ');
var sentence = "the quick brown fox jumped over the lazy dog".Split(' ');
var test = sentence.Contains(searchTerms);

我将测试检测为True - 然后我收到编译错误: 'string []'不包含'Contains'的定义,最好的扩展方法重载'System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource)'有一些无效的参数

我应该如何测试该句子是否包含所有搜索词?

2 个答案:

答案 0 :(得分:3)

您正在尝试检查句子中是否有任何搜索字词:

if (!searchTerms.Except(sentence, StringComparer.CurrentCultureIgnoreCase).Any())

答案 1 :(得分:1)

你可以这样做:

//test if all of the terms are in the sentence
searchTerms.All(term => sentence.Contains(term));