Ваш вопрос не очень понятен, но помогает ли это?
List<int> X = new List<int>();
List<int> Y = new List<int>();
int countOfIntersections = X.Intersect(Y).Count();
int sumOfIntersections = X.Intersect(Y).Sum();
РЕДАКТИРОВАТЬ
Подождите, вы ищете декартово произведение двух списков?
List<int> XList = new List<int>();
List<int> YList = new List<int>();
var tuples = from x in XList
from y in YList
select new { x, y };