Como percorrer duas coleções em paralelo sem alocações no heap em C#
Enumerable.Zip aloca 144-208 bytes por chamada e roda cerca de 10x mais devagar que um loop simples. Para arrays e listas, um loop for sobre dois spans fatiados com o mesmo comprimento não aloca nada e é a opção mais rápida; para a sintaxe foreach, um pequeno enumerador zip em ref struct fica a 25% dele. Medido no .NET 10.0.10 e no .NET 11 RC 3.