使用Linq比较或匹配两个通用列表集

时间:2014-04-29 15:39:25

标签: c# linq .net-4.5

引用列表比较的许多链接Compare two lists C# linq我仍然没有清楚地在列表之间进行匹配。

Let's say I have two lists of strings:

 List1: "apple, orange, mango, bananna, butter fruit"

 List2: "butter fruit, grapes, apple, bananna, orange, mango, jack fruit, pineapple"

在这里,我需要检查 List2 中是否存在 List1 项目。如果是,那么返回true,否则为假。

我尝试使用Except,但没有在集合之间得到预期的结果为真或假。

if(List1.Except(List2).Count == 0)
{
  ....
}

2 个答案:

答案 0 :(得分:2)

除了

if(list1.Except(list2).Any())
{
   //....
}

使用All(Bobson的评论:如果list1为空,请注意.All()将成功,但其他两个不会):

list1.All(str => list2.Contains(str));

使用Any:

list1.Any(str => !list2.Contains(str));

答案 1 :(得分:-1)

您可以使用All方法:

return list1.All(list2.Contains);