¿Cómo recorrer dos IEnumerables simultáneamente?

Tengo dos enumerables:IEnumerable<A> list1 yIEnumerable<B> list2. Me gustaría iterar a través de ellos simultáneamente como:

foreach((a, b) in (list1, list2))
{
    // use a and b
}

Si no contienen el mismo número de elementos, se debe lanzar una excepción.

¿Cuál es la mejor manera de hacer esto?

Respuestas a la pregunta(7)

Su respuesta a la pregunta