MoreEnumerableEquiZipTFirst, TSecond, TResult Method (IEnumerableTFirst, IEnumerableTSecond, FuncTFirst, TSecond, TResult) |
Returns a projection of tuples, where each tuple contains the N-th
element from each of the argument sequences.
Namespace:
MoreLinq
Assembly:
MoreLinq (in MoreLinq.dll) Version: 3.0.0
Syntax public static IEnumerable<TResult> EquiZip<TFirst, TSecond, TResult>(
this IEnumerable<TFirst> first,
IEnumerable<TSecond> second,
Func<TFirst, TSecond, TResult> resultSelector
)
<ExtensionAttribute>
Public Shared Function EquiZip(Of TFirst, TSecond, TResult) (
first As IEnumerable(Of TFirst),
second As IEnumerable(Of TSecond),
resultSelector As Func(Of TFirst, TSecond, TResult)
) As IEnumerable(Of TResult)
public:
[ExtensionAttribute]
generic<typename TFirst, typename TSecond, typename TResult>
static IEnumerable<TResult>^ EquiZip(
IEnumerable<TFirst>^ first,
IEnumerable<TSecond>^ second,
Func<TFirst, TSecond, TResult>^ resultSelector
)
[<ExtensionAttribute>]
static member EquiZip :
first : IEnumerable<'TFirst> *
second : IEnumerable<'TSecond> *
resultSelector : Func<'TFirst, 'TSecond, 'TResult> -> IEnumerable<'TResult>
Parameters
- first
- Type: System.Collections.GenericIEnumerableTFirst
The first sequence. - second
- Type: System.Collections.GenericIEnumerableTSecond
The second sequence. - resultSelector
- Type: SystemFuncTFirst, TSecond, TResult
Function to apply to each pair of elements.
Type Parameters
- TFirst
- Type of elements in first sequence.
- TSecond
- Type of elements in second sequence.
- TResult
- Type of elements in result sequence.
Return Value
Type:
IEnumerableTResult
A sequence that contains elements of the two input sequences,
combined by
resultSelector.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type
IEnumerableTFirst. When you use instance method syntax to call this method, omit the first parameter. For more information, see
Extension Methods (Visual Basic) or
Extension Methods (C# Programming Guide).
Remarks
If the two input sequences are of different lengths then
InvalidOperationException is thrown.
This operator uses deferred execution and streams its results.
Examples var numbers = new[] { 1, 2, 3, 4 };
var letters = new[] { "A", "B", "C", "D" };
var zipped = numbers.EquiZip(letters, (n, l) => n + l);
The
zipped variable, when iterated over, will yield "1A",
"2B", "3C", "4D" in turn.
See Also