Click or drag to resize

CartesianExtension.Cartesian<T1, T2, T3, T4, T5, T6, T7, T8, TResult> Method (IEnumerable<T1>, IEnumerable<T2>, IEnumerable<T3>, IEnumerable<T4>, IEnumerable<T5>, IEnumerable<T6>, IEnumerable<T7>, IEnumerable<T8>, Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>)

Returns the Cartesian product of eight sequences by enumerating all possible combinations of one item from each sequence, and applying a user-defined projection to the items in a given combination.

Namespace:  MoreLinq.Extensions
Assembly:  MoreLinq (in MoreLinq.dll) Version: 3.0.0
Syntax
public static IEnumerable<TResult> Cartesian<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(
	this IEnumerable<T1> first,
	IEnumerable<T2> second,
	IEnumerable<T3> third,
	IEnumerable<T4> fourth,
	IEnumerable<T5> fifth,
	IEnumerable<T6> sixth,
	IEnumerable<T7> seventh,
	IEnumerable<T8> eighth,
	Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> resultSelector
)

Parameters

first
Type: System.Collections.Generic.IEnumerable<T1>
The first sequence of elements.
second
Type: System.Collections.Generic.IEnumerable<T2>
The second sequence of elements.
third
Type: System.Collections.Generic.IEnumerable<T3>
The third sequence of elements.
fourth
Type: System.Collections.Generic.IEnumerable<T4>
The fourth sequence of elements.
fifth
Type: System.Collections.Generic.IEnumerable<T5>
The fifth sequence of elements.
sixth
Type: System.Collections.Generic.IEnumerable<T6>
The sixth sequence of elements.
seventh
Type: System.Collections.Generic.IEnumerable<T7>
The seventh sequence of elements.
eighth
Type: System.Collections.Generic.IEnumerable<T8>
The eighth sequence of elements.
resultSelector
Type: System.Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>
A projection function that combines elements from all of the sequences.

Type Parameters

T1
The type of the elements of first.
T2
The type of the elements of second.
T3
The type of the elements of third.
T4
The type of the elements of fourth.
T5
The type of the elements of fifth.
T6
The type of the elements of sixth.
T7
The type of the elements of seventh.
T8
The type of the elements of eighth.
TResult
The type of the elements of the result sequence.

Return Value

Type: IEnumerable<TResult>
A sequence of elements returned by resultSelector.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<T1>. 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

The method returns items in the same order as a nested foreach loop, but all sequences except for first are cached when iterated over. The cache is then re-used for any subsequent iterations.

This method uses deferred execution and stream its results.

See Also