0

私は次のリストを持っています:

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
    };

list2list1 のすべての要素を含む各リストを選択したいと思います。
最適な方法でそれを行うにはどうすればよいですか

4

2 に答える 2

2
list2.Where(l2 => list1.Intersect(l2).Count()==list1.Count)
于 2013-05-04T00:49:21.967 に答える
2

ExceptおよびAnyメソッドを使用できます。

var results = list2.Where(x => !list1.Except(x).Any())
于 2013-05-04T00:56:15.417 に答える