Linq-запрос: разность двух коллекций - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, интересует решение задачи с помощью Linq запроса (если это возможно). Необходимо получить разность двух коллекций
Листинг программы
  1. var a = new int[] {2,2,2,1};
  2. var b = new int[] {2,1};
Результат должен быть {2, 2}; Собственно необходимость возникла при разбиении числа на простые множители. Решалось всё замечательно методом Exept, пока до меня не дошло, что 8 =2 * 2 * 2 или 12 =3 * 2 * 2 и методом Exept (3 * 2) и (2) уже не получить.

Решение задачи: «Linq-запрос: разность двух коллекций»

textual
Листинг программы
  1. var combinations = Enumerable.Range(0, 1 << primeFactors.Count).
  2.                                           Select(m => (Enumerable.Range(0, primeFactors.Count).
  3.                                                                   Where(i => (m & (1 << i)) != 0).Select(i => primeFactors[i]))).
  4.                                           Where(y => y.Count() > 0).
  5.                                           Select(x => new
  6.                                           {
  7.                                               FirstParam = x.Aggregate((a, b) => a * b),
  8.                                               SecondParam = x.Count() == primeFactors.Count ? 1 : //primeFactors.Except(x).Aggregate((a, b) => a * b)
  9.                                                 getDif(primeFactors, x.ToList()).Aggregate((a, b) => a * b)
  10.                                           } ).OrderByDescending(pair => pair.FirstParam);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут