União e interseção de arrays

Retorne um array denteado de dois elementos contendo a interseção e a união de dois arrays de inteiros não vazios, nessa ordem. Remova as duplicatas de ambos os resultados e ordene cada resultado em ordem crescente.

Exemplo

Program.IntersectionUnion(new[] { 1, 2, 3, 4, 4 }, new[] { 4, 5, 9 }) ➢ new[] { new[] { 4 }, new[] { 1, 2, 3, 4, 5, 9 } }