Click or drag to resize

ZipShortestExtensionZipShortestT1, T2, T3, T4, TResult Method (IEnumerableT1, IEnumerableT2, IEnumerableT3, IEnumerableT4, FuncT1, T2, T3, T4, TResult)

Returns a projection of tuples, where each tuple contains the N-th element from each of the argument sequences.

Namespace:  MoreLinq.Extensions
Assembly:  MoreLinq (in MoreLinq.dll) Version: 3.0.0
Syntax
public static IEnumerable<TResult> ZipShortest<T1, T2, T3, T4, TResult>(
	this IEnumerable<T1> first,
	IEnumerable<T2> second,
	IEnumerable<T3> third,
	IEnumerable<T4> fourth,
	Func<T1, T2, T3, T4, TResult> resultSelector
)

Parameters

first
Type: System.Collections.GenericIEnumerableT1
The first sequence.
second
Type: System.Collections.GenericIEnumerableT2
The second sequence.
third
Type: System.Collections.GenericIEnumerableT3
The third sequence.
fourth
Type: System.Collections.GenericIEnumerableT4
The fourth sequence.
resultSelector
Type: SystemFuncT1, T2, T3, T4, TResult
Function to apply to each quadruplet 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.
T4
Type of elements in fourth 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.

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 flags   = new[] { true, false };
var zipped  = numbers.ZipShortest(letters, chars, flags, (n, l, c, f) => n + l + c + f);
The zipped variable, when iterated over, will yield "1AaTrue", "2BbFalse" in turn.
See Also