Перед маркировки это как дубликат из ее названия, пожалуйста, рассмотрим следующую короткую программу:сравнения, если две последовательности равны
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) };
}
У меня есть метод, который возвращает последовательность массивов типа длиной. Чтобы проверить это, я написал некоторый тестовый код, подобный этому, в пределах Main
.
Однако я получаю исключение, но я не знаю, почему. Должна ли ожидаемая последовательность быть сопоставимой с фактически возвращенной или я ничего не пропустил?
Мне кажется, что и метод, и epxected
содержат ровно один единственный элемент, содержащий массив типа long, не так ли?
EDIT: Как я могу достичь, чтобы не получить значение исключения для сравнения элементов в перечислении, чтобы вернуть равенство?
Что такое исключение? – Magnus
Тот, кого я бросаю? – HimBromBeere
Элементы в вашей последовательности: 'long []'. Это будет сравнение ссылок на массивы, которые действительно отличаются друг от друга. Элементы массива (который находится в последовательности) не будут сравниваться. –