Método Zip

by Israel Aece 20. September 2009 17:29

Um novo método (de extensão) foi adicionado à classe Enumerable na versão 4.0 do .NET, chamado de Zip. Dado duas coleções/arrays, esse método tem a finalidade de aplicar uma espécie de "zíper" entre eles, ou seja, agrupando os elementos correntes de cada coleção, onde o resultado é a combinação entre esses dois elementos. Para exemplificar, considere os dois arrays de inteiros:

int[] pares = new int[] { 0, 2, 4, 6, 8 };
int[] impares = new int[] { 1, 3, 5, 7, 9 };

foreach
(var item in impares.Zip(pares, (i, p) => string.Format("{0}, {1}, ", p, i)))
    Console.Write(item);

O resultado ficará: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. O processamento se encerra quando não for encontrado um elemento "correspondente" na outra coleção.

Tags: ,

.NET Framework | C#

Comments

9/21/2009 8:59:16 AM #

Prodis a.k.a. Fernando Hamasaki de Amorim

Quando há elementos iguais nas duas listas, o que acontece?

Prodis a.k.a. Fernando Hamasaki de Amorim Brazil

9/21/2009 10:19:39 AM #

IsraelAece

Boas Fernando,

Não importa. Na verdade, ele vai passando o que encontra em ambas para o delegate, que por sua vez, faz o que quiser com os elementos. A implementação é qualquer coisa como:

IEnumerator e1 = source.GetEnumerator();
IEnumerator e2 = otherSource.GetEnumerator();

while(e1.MoveNext() && e2.MoveNext())
    func(e1.Current, e2.Current);

IsraelAece Brazil

Add comment




  Country flag

biuquote Click to change captcha

  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Host