2014-04-29 99 views
-2

引用列表比较的很多链接Compare two lists C# linq仍然我没有清楚地列出列表之间的匹配。使用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" 

在这里,我需要检查列表1物品是否有在列表2设置与否。如果有,则返回true否则返回false。

我试过但除了没有得到预期的结果之间的真或假集。

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

你想获得真正的如果list1的所有元素都在列表2,或真列表/在列表1每个元素假? – digEmAll

+0

我只需要true,如果list1项目在列表2中是prsent – venkat

+0

您要求我们诊断您的代码*的问题,并且您甚至没有提供不工作的代码*。 – Servy

回答

2

与除

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

随着所有(BOBSON的评论:被警告说,如果列表1是空的。所有()会成功,但其他两个不会):

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

With Any:

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

被警告,如果'list1'为空,'.All()'将成功,但其他两个不会。 – Bobson

+0

你的权利,我会编辑。 –

-1

你可以ü SE All方法:

return list1.All(list2.Contains); 
+0

+1如果列表真的很长,您可以考虑将list2推入HashSet,然后调用Contains ... – digEmAll

+0

@digEmAll这就是'Except'将为您做的事情。 – Servy

+0

@Servy:当然是......但我觉得这段代码更具可读性...... – digEmAll