Вы также можете использовать метод расширения "Zip".
Assert.AreEqual(result.unchangedItems.Count, expectedunchangedItems.Count);
result.unchangedItems.Zip(expectedunchangedItems, (a, b) => Tuple.Create(a, b))
.ForEach(p => Assert.AreEqual(p.Item1.LMAA_CODE, p.Item2));
Таким образом, исключение сообщает, какое значение не ожидалось.Метод Zip () включен в .NET 4, но я лично предпочитаю использовать свой собственный, и, конечно, вам также понадобится ForEach ():
// I actually have a Pair<A,B> struct that I prefer to use, but
// KeyValuePair or Tuple works almost as well.
public static IEnumerable<Tuple<A, B>> ZipTuples<A, B>(this IEnumerable<A> a, IEnumerable<B> b)
{
IEnumerator<A> ea = a.GetEnumerator();
IEnumerator<B> eb = b.GetEnumerator();
while (ea.MoveNext() && eb.MoveNext())
yield return new Tuple<A, B>(ea.Current, eb.Current);
}
public static void ForEach<T>(this IEnumerable<T> list, Action<T> action)
{
foreach (T item in list)
action(item);
}
Использование:
Assert.AreEqual(result.unchangedItems.Count, expectedunchangedItems.Count);
result.unchangedItems.ZipTuples(expectedunchangedItems)
.ForEach(p => Assert.AreEqual(p.Item1.LMAA_CODE, p.Item2));