检查列表中的字符串数组包含来自另一个列表的字符串,反之亦然

cab*_*oad 2 c# linq

使用linq有一个简单的方法吗?

我想检查并返回true或false,list1中的任何字符串是否包含array1中的字符串.在下面的例子中,这将是string2value,我想返回true.

同样我想检查是否有任何array1包含list1中的字符串.这将是string1blah,因此也将返回true.谢谢!

List<string> list1 = new List<string>{"string1","string2value"};

string[] array1 = new string[2] {"string1blah","string2"};
Run Code Online (Sandbox Code Playgroud)

我有几个版本,但它不能一直工作.

array1.ToList().Any(a=>list1.Contains(a))
list1.Any(l=>array1.ToList().Contains(l))
Run Code Online (Sandbox Code Playgroud)

oct*_*ccl 8

你可以试试这个:

var result= list1.Where(s=>array1.Any(s1=>s.Contains(s1)));
Run Code Online (Sandbox Code Playgroud)

根据每个字符串list1,您可以看到字符串中array1是否包含元素s.