Linq查找字符串的list2中存在的字符串的list1的所有元素

时间:2019-02-09 07:11:49

标签: c#

删除代码,因为它是私有代码

4 个答案:

答案 0 :(得分:2)

List<string> list1 = new List<string> { "0186264-9-2019-019", "0186264-9-2019-020" };

List<string> list2 =new List<string> { "0186264-9-2019-020" };

 var d = list1.Except(list2).Any() ;

答案 1 :(得分:1)

您可以使用Except来查找两组之间的差异(优化查找)。

bool allElements = !list1.Except(list2).Any();

list1.Except(list2)返回list1list2中项目的集合。如果list2不包含任何元素,则它包含list1的所有项目(以及可能不在list1中的其他项目)。

答案 2 :(得分:0)

您可以使用linq表达式。

此处是代码参考。

List<string> list1 = new List<string> { "0186264-9-2019-019", "0186264-9-2019-020" };

List<string> list2 = new List<string> { "0186264-9-2019-020" };

List<string> Common = list1.Where(c => list2.Contains(c)).ToList();

根据您的评论,您可以使用except方法。

List<string> list1 = new List<string> { "0186264-9-2019-019", "0186264-9-2019-020" };
List<string> list2 = new List<string> { "0186264-9-2019-020" , "0186264-9-2019-019" };


if (list1.Except(list2).Any())
{
 // All list 1 values not present in list 2
}
else
{
 // All list 1 values present in list 2      
}

答案 3 :(得分:0)

您可以使用All方法:

var haveAll= list1.All(element=> list2.Contains(element))