2013-05-04 69 views
0

我有以下列表:包含在Linq中的對象?

var list1 = new List<string> {"m1", "m2", "m3"}; 
var list2 = new List<List<string>> 
    { 
     new List<string>{"m1", "m2", "m3"},//1 
     new List<string>{"m1", "m2", "m3", "m4", "m5"},//2 
     new List<string>{"m4", "m5", "m3", "m45", "m35"},//3 
     new List<string>{"m1", "m36", "m43", "m54", "m54"},//4 
     new List<string>{"m2", "m4", "m3", "m44", "m55"}//5 
    }; 

我想選擇一個包含列表1中的所有元素的list2每個列表。
我們應該怎麼做,在一個優化的方式

回答

2

你可以做使用ExceptAny方法:

var results = list2.Where(x => !list1.Except(x).Any()) 
2
list2.Where(l2 => list1.Intersect(l2).Count()==list1.Count) 
+1

+1這將工作太,但我還是喜歡'任何()'表現。 – 2013-05-04 01:04:07