По умолчанию нет способа, но нетрудно добавить метод расширения, чтобы сделать его немного проще. Я исключил некоторые проверки ошибок, чтобы убедиться, что они оба имеют одинаковую длину для краткости.
public static void ForEachPair<T1,T2>(
this IEnumerable<T1> source1,
IEnumerable<T2> source2,
Action<T1,T2> del) {
using ( var e1 = source1.GetEnumerator() )
using ( var e2 = source2.GetEnumerator() ) {
while ( e1.MoveNext() && e2.MoveNext() ) {
del(e1.Current, e2.Current);
}
}
}
Теперь вы можете сделать следующее
var list = GetSomeList();
var otherList = GetSomeOtherList();
list.ForEachPair(otherList, (x,y) =>
{
// Loop code here
});