/// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.LeftJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" /> /// <remarks> /// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.LeftJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" /> /// <para>This method is called when using query expressions where the sequence on the right side is an <see cref="T:VariableIrony.Linq.IOuterEnumerable`1" /> (for example, by calling <see cref="M:VariableIrony.IEnumerableExtensions.AsOuter``1(System.Collections.Generic.IEnumerable{``0})" />).</para> /// </remarks> public static IEnumerable <TResult> Join <TInner, TOuter, TKey, TResult>(this IEnumerable <TInner> inner, IOuterEnumerable <TOuter> outer, Func <TInner, TKey> innerKeySelector, Func <TOuter, TKey> outerKeySelector, Func <TInner, TOuter, TResult> resultSelector, IEqualityComparer <TKey> comparer) { return(LeftJoin(GetSource(outer), inner, outerKeySelector, innerKeySelector, (x, y) => resultSelector(y, x), comparer)); }
/// <inheritdoc cref="M:VariableIrony.IEnumerableExtensions.Join``4(System.Collections.Generic.IEnumerable{``0},VariableIrony.Linq.IOuterEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})" /> public static IEnumerable <TResult> Join <TInner, TOuter, TKey, TResult>(this IEnumerable <TInner> inner, IOuterEnumerable <TOuter> outer, Func <TInner, TKey> innerKeySelector, Func <TOuter, TKey> outerKeySelector, Func <TInner, TOuter, TResult> resultSelector) { return(inner.Join(outer, innerKeySelector, outerKeySelector, resultSelector, null)); }