2013-04-02 55 views
-2

如果我有以下...如何知道ListA是否拥有ListB的所有内容?

List<string> listA = new List<string>(); 
listA.Add("a"); 
listA.Add("b"); 
listA.Add("c"); 
listA.Add("d"); 

List<string> listB = new List<string>(); 
listB.Add("b"); 
listB.Add("d"); 

我怎么能知道是否有listA的一切数组listB了?

+1

问了几次。请做一些研究。 http://stackoverflow.com/questions/1520642/does-net-have-a-way-to-check-if-list-a-contains-all-items-in-list-b – MickJ

回答

0

试试这个:

bool result = listB.Intersect(listA).Count() == listB.Count; 

而且也是这样:

bool result2 = listB.Select(input => !listA.Contains(input)).Count() > 0; 
+2

如果列表A有更多比列表B? –

2

你能做到这一点的原料(慢)的方式,以确保

bool contains_all = true; 

foreach(String s in listA) { 
    if(!listB.Contains(s)) { 
    contains_all = false; 
    break; 
    } 
} 

虽然这并执行详尽搜索阵列中的每个元素

0
bool result = false; 

if (listB.Count>listA.Count) result = listB.Intersect(listA).Count() == listB.Count; 

else result = listA.Intersect(listB).Count() == listA.Count; 
相关问题