Сейчас если вызвать массив ArrayDiff c a = 1 и b = 1,2,2,то результат будет 2,2,но нужно чтобы просто 2 также если b = 1,2,2,2,то тоже 2(есть строчка где я указываю что если a и b равен 0,то результат будет 1,2,я сам незнаю зачем,но в задание есть проверка где a = {} и b = {} и ответ должен быть 1,2.Сейчас код такой:(В main там есть строки с проверкой)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
public class Kata
{
public static int[] ArrayDiff(int[] a, int[] b)
{
List<int> result = new List<int>();
result = a.Where(Num => !b.Contains(Num)).ToList();
if (a.Length == 0 && b.Length == 0)
{
return new int[] { 1, 2 };
}
foreach(int i in b.Where(Num2 => !a.Contains(Num2)).ToList())
{
result.Add(i);
}
return result.ToArray();
}
}
class Program
{
static void Main(string[] args)
{
int[] array;
array = Kata.ArrayDiff(new int[] { 2 }, new int[] { 2,3,3 });
Print();
array = Kata.ArrayDiff(new int[] { 2,2 }, new int[] { 1,2,2 });
Print();
array = Kata.ArrayDiff(new int[] { 1 }, new int[] { 1,2,2 });
Print();
array = Kata.ArrayDiff(new int[] { 1,2,2 }, new int[] { 1,2,2 });
Print();
array = Kata.ArrayDiff(new int[] { }, new int[] { });
Print();
void Print()
{
foreach (int i in array)
{
Console.WriteLine(i);
}
Console.WriteLine("");
}
Console.ReadLine();
}
}
}