Skip to content

Instantly share code, notes, and snippets.

@profesor79
Last active March 7, 2023 03:23
Show Gist options
  • Save profesor79/723e1f7675fd0a256227b920cbc4b28b to your computer and use it in GitHub Desktop.
Save profesor79/723e1f7675fd0a256227b920cbc4b28b to your computer and use it in GitHub Desktop.
Zip an LINQ extension
public void Zip()
{
// An int array with 7 elements.
IEnumerable < int > numbers = new []
{
1, 2, 3, 4, 5, 6, 7
};
// A char array with 6 elements.
IEnumerable < char > letters = new []
{
'A', 'B', 'C', 'D', 'E', 'F'
};
var union = numbers.Zip(letters);
}
public void Manual()
{
var numbers = new []
{
1, 2, 3, 4, 5, 6, 7
};
// A char array with 6 elements.
var letters = new []
{
'A', 'B', 'C', 'D', 'E', 'F'
};
//for need to be done on the lower element
var howManyLoops = letters.Count() > numbers.Count() ? letters.Count() : numbers.Count();
var l = new List < Tuple < char, int>> ();
for (var i = 0; i < howManyLoops - 1; i++) {
l.Add(Tuple.Create(letters[i], numbers[i]));
}
}
public void ManualEnuberable()
{
IEnumerable < int > numbers = new []
{
1, 2, 3, 4, 5, 6, 7
};
// A char array with 6 elements.
IEnumerable < char > letters = new []
{
'A', 'B', 'C', 'D', 'E', 'F'
};
//for need to be done on the lower element
var howManyLoops = letters.Count() > numbers.Count() ? letters.Count() : numbers.Count();
var l = new List < Tuple < char, int>> ();
for (var i = 0; i < howManyLoops - 1; i++) {
l.Add(Tuple.Create(letters.ElementAt(i), numbers.ElementAt(i)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment