CartesianExtension.Cartesian<T1, T2, T3, TResult> Method (IEnumerable<T1>, IEnumerable<T2>, IEnumerable<T3>, Func<T1, T2, T3, TResult>) |
Returns the Cartesian product of three 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.2.0+5205ea241d72b079436060d330cd5c2eae7cdcdf
Syntaxpublic static IEnumerable<TResult> Cartesian<T1, T2, T3, TResult>(
this IEnumerable<T1> first,
IEnumerable<T2> second,
IEnumerable<T3> third,
Func<T1, T2, T3, TResult> resultSelector
)
<ExtensionAttribute>
Public Shared Function Cartesian(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>^ Cartesian(
IEnumerable<T1>^ first,
IEnumerable<T2>^ second,
IEnumerable<T3>^ third,
Func<T1, T2, T3, TResult>^ resultSelector
)
[<ExtensionAttribute>]
static member Cartesian :
first : IEnumerable<'T1> *
second : IEnumerable<'T2> *
third : IEnumerable<'T3> *
resultSelector : Func<'T1, 'T2, 'T3, 'TResult> -> IEnumerable<'TResult>
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. - resultSelector
- Type: System.Func<T1, T2, T3, 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.
- 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