Подсчет и сумма Пересечений IEnumerable Список из двух списков объектов в c # - PullRequest
0 голосов
/ 24 марта 2011

Я хочу подсчитать и суммировать пересечения в IEnumerable списке из двух списков объектов. Например как мне использовать Intersect, чтобы получить сумму всех пересекающихся 2-кортежей.

var combinations = ls.Select(x => ls.Where(y => ls.IndexOf(y) > ls.IndexOf(x))
                                                          .Select(z => new List<Foo> { x, z }))
                                                          .SelectMany(x => x);

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Ваш вопрос не очень понятен, но помогает ли это?

 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 };
1 голос
/ 24 марта 2011

Боюсь, я не совсем понимаю, о чем вы спрашиваете - ваш пример не дает ясности.

Если это поможет, в Linq есть метод Intersect: http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx

...