Из массива А удалить те элементы, которые встречаются и в массиве А и в массиве В по крайней мере по 2 раза - C#
Формулировка задачи:
Из массива А удалить те элементы, которые встречаются и в массиве А и в массиве В по крайней мере по 2 раза. Пример, массив А[10]: 2 2 3 4 5 1 2 3 4 9, массив B[9]: 1 2 3 4 5 6 4 8 9. По 2 раза в обоих массивах встречается только элемент - 4. Массив А после удаление примет вид: А[8]: 2 2 3 5 1 2 3 9. Повторятся могут больше двух раз, и не только один элемент.
Прошу, помогите сделать...
Решение задачи: «Из массива А удалить те элементы, которые встречаются и в массиве А и в массиве В по крайней мере по 2 раза»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int[] a = { 2, 2, 3, 4, 5, 1, 2, 3, 4, 9 };
int[] b = { 1, 2, 3, 4, 5, 6, 4, 8, 9 };
b = b.GroupBy(v => v).Where(c => c.Count() >= 2).SelectMany(v => v).Distinct().ToArray(); //выбрали элементы, которые встречаются более 2-х раз во втором массиве
int[] a1 = a.GroupBy(v => v).Where(c => c.Count() >= 2).SelectMany(v => v).Distinct().ToArray(); //в первом
for (int i = 0; i < b.Length; i++)
a1 = a1.Where(v => v == b[i]).ToArray(); //оставили общие
for (int i = 0; i < a1.Length; i++)
a = a.Where(v => v != a1[i]).ToArray();//исключаем совпавшие с общими
Console.Write(String.Join(" ", a));
Console.ReadKey(true);
}
}
}