Оператор Linq для итерации через набор и удостоверяющийся каждый объект в правильном порядке?

я получен простое IEnumerable<foo> foos; Этот набор является некоторыми результатами вызова дб.

Я хочу удостовериться, что каждый объект в списке заказан правильно. Дб любой возвраты результаты

  • заказанный идентификатором, самым низким к самому высокому. например, 1, 2, 3, 4.... и т.д.
  • заказанный по дате созданный, декремент (новый, сначала).

Может это быть сделанным с быстрым linq оператором.. проверять на это?

например. Assert.IsTrue(.. insert linq statement here .. )

в настоящее время я имею для цикла и помню предыдущую запись и проверку если значение этого, если было значение. Это чувствует себя... громоздким.

Какие-либо идеи?

5
задан Pure.Krome 3 February 2010 в 05:00
поделиться

2 ответа

Вы можете сравнить свою коллекцию с упорядоченной версией:

CollectionAssert.AreEqual(foos.ToList(), foos.OrderBy(f => f.Id));

Или:

CollectionAssert.AreEqual(foos.ToList(), 
                          foos.OrderByDescending(f => f.DateCreated));
4
ответ дан 14 December 2019 в 13:35
поделиться

Предполагая, что вы запрашиваете наибольшее число, которое вы можете сохранить в целое число, значение зависит от реализации. Я предлагаю не думать таким образом при использовании питона. В любом случае, довольно большое значение может храниться в питоне 'целое'. Помните, Python использует утиную печать!

Изменить: Я дал свой ответ перед разъяснением, что просителю нужно количество цифр. Для этого я согласен с методом, предложенным принятым ответом. Больше нечего добавлять!

-121--627356-

Можно сравнить коллекцию с упорядоченной версией:

CollectionAssert.AreEqual(foos.ToList(), foos.OrderBy(f => f.Id));

Или:

CollectionAssert.AreEqual(foos.ToList(), 
                          foos.OrderByDescending(f => f.DateCreated));
-121--4950603-

Существует метод расширения с именем SequureEqual , который сделает это. Однако существует также метод утверждения, называемый CollireAssert.AreEqual , который сравнивает две коллекции, чтобы гарантировать, что они имеют одинаковые предметы в одном и том же порядке.

2
ответ дан 14 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: