Compare se duas sequências são iguais
Antes de marcar isso como duplicado por causa de seu título, considere o seguinte programa curto:
static void Main()
{
var expected = new List<long[]> { new[] { Convert.ToInt64(1), Convert.ToInt64(999999) } };
var actual = DoSomething();
if (!actual.SequenceEqual(expected)) throw new Exception();
}
static IEnumerable<long[]> DoSomething()
{
yield return new[] { Convert.ToInt64(1), Convert.ToInt64(999999) };
}
Eu tenho um método que retorna uma sequência de matrizes do tipo long. Para testá-lo, escrevi um código de teste semelhante àqueleMain
.
No entanto, recebo a exceção, mas não sei por quê. A sequência esperada não deve ser comparável à sequência realmente retornada ou eu perdi alguma coisa?
Para mim, parece tanto o método quanto oepxected
contém exatamente um único elemento que contém uma matriz do tipo long, não é?
Edição: Então, como faço para conseguir não obter o significado de exceção para comparar os elementos dentro da enumeração para retornar a igualdade?