ZipShortestExtensionZipShortestT1, T2, T3, TResult Method (IEnumerableT1, IEnumerableT2, IEnumerableT3, FuncT1, T2, T3, TResult) |
Returns a projection of tuples, where each tuple contains the N-th
element from each of the argument sequences. The resulting sequence
is as short as the shortest input sequence.
Namespace:
MoreLinq.Extensions
Assembly:
MoreLinq (in MoreLinq.dll) Version: 3.3.1+b77df70598ab84c28cd43dcf74594024b6d575e1
Syntax public static IEnumerable<TResult> ZipShortest<T1, T2, T3, TResult>(
this IEnumerable<T1> first,
IEnumerable<T2> second,
IEnumerable<T3> third,
Func<T1, T2, T3, TResult> resultSelector
)
<ExtensionAttribute>
Public Shared Function ZipShortest(Of T1, T2, T3, TResult) (
first As IEnumerable(Of T1),
second As IEnumerable(Of T2),
third As IEnumerable(Of T3),
resultSelector As Func(Of T1, T2, T3, TResult)
) As IEnumerable(Of TResult)
public:
[ExtensionAttribute]
generic<typename T1, typename T2, typename T3, typename TResult>
static IEnumerable<TResult>^ ZipShortest(
IEnumerable<T1>^ first,
IEnumerable<T2>^ second,
IEnumerable<T3>^ third,
Func<T1, T2, T3, TResult>^ resultSelector
)
[<ExtensionAttribute>]
static member ZipShortest :
first : IEnumerable<'T1> *
second : IEnumerable<'T2> *
third : IEnumerable<'T3> *
resultSelector : Func<'T1, 'T2, 'T3, 'TResult> -> IEnumerable<'TResult>
Parameters
- first
- Type: System.Collections.GenericIEnumerableT1
First sequence - second
- Type: System.Collections.GenericIEnumerableT2
Second sequence - third
- Type: System.Collections.GenericIEnumerableT3
Third sequence - resultSelector
- Type: SystemFuncT1, T2, T3, TResult
Function to apply to each triplet of elements.
Type Parameters
- T1
- Type of elements in first sequence.
- T2
- Type of elements in second sequence.
- T3
- Type of elements in third sequence.
- TResult
- Type of elements in result sequence.
Return Value
Type:
IEnumerableTResult
A projection of tuples, where each tuple contains the N-th element
from each of the argument sequences.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type
IEnumerableT1. 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 input sequences are of different lengths, the result sequence
is terminated as soon as the shortest input sequence is exhausted
and remainder elements from the longer sequences are never consumed.
This operator uses deferred execution and streams its results.
Examples var numbers = new[] { 1, 2, 3 };
var letters = new[] { "A", "B", "C", "D" };
var chars = new[] { 'a', 'b', 'c', 'd', 'e' };
var zipped = numbers.ZipShortest(letters, chars, (n, l, c) => c + n + l);
The
zipped variable, when iterated over, will yield
"98A", "100B", "102C", in turn.
See Also