-
-
Save profesor79/723e1f7675fd0a256227b920cbc4b28b to your computer and use it in GitHub Desktop.
Zip an LINQ extension
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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