Verifique se um array é subconjunto de outro

O array A está contido no array B se todos os elementos de A também estiverem em B.

Não importa quantas vezes um valor aparece. Em outras palavras, se transformássemos os dois arrays em conjuntos, A seria um subconjunto de B.

var a = new[] { 3, 3, 9, 9, 9, 5 };
var b = new[] { 1, 3, 9, 5, 8, 44, 44 };

var aSet = new[] { 3, 9, 5 };
var bSet = new[] { 1, 3, 9, 5, 8, 44 };
// aSet é um subconjunto de bSet.

Crie um método que determine se o primeiro array é um subconjunto do segundo.

Exemplos

Program.IsSubset(new[] { 1, 3 }, new[] { 1, 3, 3, 5 }) // true
Program.IsSubset(new[] { 4, 8, 7 }, new[] { 7, 4, 4, 4, 9, 8 }) // true
Program.IsSubset(new[] { 1, 3 }, new[] { 1, 33 }) // false
Program.IsSubset(new[] { 1, 3, 10 }, new[] { 10, 8, 8, 8 }) // false

Notas

  • Cada array de entrada contém pelo menos um elemento.
  • Confira a aba Recursos para ver uma dica.