score:1

Try to combine Where() and Count():

var matches = new int[] { 1, 2, 3 };
var data = new List<int[]>
{
     new int[] { 3, 2, 4 },
     new int[] { 2, 16, 5 }
};

var result = data.Where(x => x.Count(matches.Contains) == 2);

score:1

since it's int[] you can use the .Intersect() directly. For example

from a in arrays where a.Intersect(Array1).Count() == 2 select a
//arrays contains Array2 and Array3

Related Query