繁体   English   中英

检查一个数组是否包含另一个数组的值

[英]check if an array contains values of another array

我有两个列表,如果列表1包含列表2的任何值,我想要列表1的值。

List<string> list1 = new List<string>();
list1.Add("Sunday is far away");
list1.Add("Today is Monday");
list1.Add("Tuesday is too near");

List<string> list2 = new List<string>();
list2.Add("Sunday");
list2.Add("Monday");
list2.Add("Tuesday");

var result1 = list1.Where(x => list2.Any(y => y.Contains(x))).ToList(); //no results
var result2 = list2.Where(x => list1.Any(y => y.Contains(x))).ToList(); //give values of list2. But I need values of list1

更新:

我需要结果list1的值,如何得到呢?

您错过的简单事情,看看集合,第一个列表中的All Items大于第二个列表,因此contains将返回false。 因此,您必须像下面这样检查第一个项目中的第二个项目:

这是您修改后的结果代码

var result1 = list1.Where(x => list2.Any(y => x.Contains(y))).ToList(); 
var result2 = list2.Where(x => list1.Any(y => y.Contains(x))).ToList(); 

可以的。 如果List1包含List2的任何值,则result = List1。 否则为null;否则为null。

var result = list2.Any(l2 => list1.Contains(l2))==true?list1:null;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM