Obtendo o "diff" entre duas matrizes em C #?

Digamos que eu tenho essas duas matrizes:

var array1 = new[] {"A", "B", "C"};
var array2 = new[] {"A", "C", "D"};

Gostaria de obter as diferenças entre os dois. Sei que poderia escrever isso em apenas algumas linhas de código, mas quero ter certeza de que não estou perdendo um recurso de idioma interno ou um método de extensão LIN

Ideally, eu terminaria com os três resultados a seguir:

Itens que não estão no array1, mas estão no array2 ("D") Itens que não estão no array2, mas estão no array1 ("B") Itens que estão em ambos

Desde já, obrigado

questionAnswers(5)

yourAnswerToTheQuestion