ParallelEnumerable.GroupJoin Метод

Определение

Устанавливает параллельную корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты.

Перегрузки

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)
Устаревшие..

Эту перегрузку GroupJoin вызывать не следует. Данный метод помечен как устаревший, при попытке его вызова всегда создается исключение NotSupportedException.

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, ParallelQuery<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Устанавливает параллельную корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется компаратор проверки на равенство по умолчанию.

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)
Устаревшие..

Эту перегрузку GroupJoin вызывать не следует. Данный метод помечен как устаревший, при попытке его вызова всегда создается исключение NotSupportedException.

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, ParallelQuery<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Устанавливает параллельную корреляцию между элементами двух последовательностей на основе равенства ключа и группирует результаты. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>.

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs

Внимание!

The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.

Эту перегрузку GroupJoin вызывать не следует. Данный метод помечен как устаревший, при попытке его вызова всегда создается исключение NotSupportedException.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ParallelQuery<TResult> ^ GroupJoin(System::Linq::ParallelQuery<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, Func<TOuter, TKey> ^ outerKeySelector, Func<TInner, TKey> ^ innerKeySelector, Func<TOuter, System::Collections::Generic::IEnumerable<TInner> ^, TResult> ^ resultSelector);
[System.Obsolete("The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.")]
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector);
[<System.Obsolete("The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.")>]
static member GroupJoin : System.Linq.ParallelQuery<'Outer> * seq<'Inner> * Func<'Outer, 'Key> * Func<'Inner, 'Key> * Func<'Outer, seq<'Inner>, 'Result> -> System.Linq.ParallelQuery<'Result>
<Extension()>
Public Function GroupJoin(Of TOuter, TInner, TKey, TResult) (outer As ParallelQuery(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Func(Of TOuter, TKey), innerKeySelector As Func(Of TInner, TKey), resultSelector As Func(Of TOuter, IEnumerable(Of TInner), TResult)) As ParallelQuery(Of TResult)

Параметры типа

TOuter

Этот параметр типа не используется.

TInner

Этот параметр типа не используется.

TKey

Этот параметр типа не используется.

TResult

Этот параметр типа не используется.

Параметры

outer
ParallelQuery<TOuter>

Этот параметр не используется.

inner
IEnumerable<TInner>

Этот параметр не используется.

outerKeySelector
Func<TOuter,TKey>

Этот параметр не используется.

innerKeySelector
Func<TInner,TKey>

Этот параметр не используется.

resultSelector
Func<TOuter,IEnumerable<TInner>,TResult>

Этот параметр не используется.

Возвращаемое значение

ParallelQuery<TResult>

Данная перегрузка всегда создает исключение NotSupportedException.

Атрибуты

Исключения

Исключение, которое возникает при вызове этого метода.

Комментарии

Эта перегрузка существует, чтобы запретить использование GroupJoin с левым источником данных типа ParallelQuery<TSource> и правым источником данных типа IEnumerable<T>. В противном случае оператор GroupJoin, как представляется, привязывается к параллельной реализации, но в действительности привязывается к последовательной реализации.

См. также раздел

Применяется к

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, ParallelQuery<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs

Устанавливает параллельную корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется компаратор проверки на равенство по умолчанию.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ParallelQuery<TResult> ^ GroupJoin(System::Linq::ParallelQuery<TOuter> ^ outer, System::Linq::ParallelQuery<TInner> ^ inner, Func<TOuter, TKey> ^ outerKeySelector, Func<TInner, TKey> ^ innerKeySelector, Func<TOuter, System::Collections::Generic::IEnumerable<TInner> ^, TResult> ^ resultSelector);
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Linq.ParallelQuery<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector);
static member GroupJoin : System.Linq.ParallelQuery<'Outer> * System.Linq.ParallelQuery<'Inner> * Func<'Outer, 'Key> * Func<'Inner, 'Key> * Func<'Outer, seq<'Inner>, 'Result> -> System.Linq.ParallelQuery<'Result>
<Extension()>
Public Function GroupJoin(Of TOuter, TInner, TKey, TResult) (outer As ParallelQuery(Of TOuter), inner As ParallelQuery(Of TInner), outerKeySelector As Func(Of TOuter, TKey), innerKeySelector As Func(Of TInner, TKey), resultSelector As Func(Of TOuter, IEnumerable(Of TInner), TResult)) As ParallelQuery(Of TResult)

Параметры типа

TOuter

Тип элементов первой последовательности.

TInner

Тип элементов второй последовательности.

TKey

Тип ключей, возвращаемых функциями селектора ключа.

TResult

Тип результирующих элементов.

Параметры

outer
ParallelQuery<TOuter>

Первая последовательность для соединения.

inner
ParallelQuery<TInner>

Последовательность, соединяемая с первой последовательностью.

outerKeySelector
Func<TOuter,TKey>

Функция, извлекающая ключ соединения из каждого элемента первой последовательности.

innerKeySelector
Func<TInner,TKey>

Функция, извлекающая ключ соединения из каждого элемента второй последовательности.

resultSelector
Func<TOuter,IEnumerable<TInner>,TResult>

Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности.

Возвращаемое значение

ParallelQuery<TResult>

Последовательность, которая содержит элементы типа TResult, полученные в результате соединения двух последовательностей с группировкой.

Исключения

Запрос отменен с использованием маркера, переданного через WithCancellation<TSource>(ParallelQuery<TSource>, CancellationToken).

source или action или outer или inner или outerKeySelector или innerKeySelector или resultSelector является null (Nothing в Visual Basic).

При оценке запроса получено одно или несколько исключений.

См. также раздел

Применяется к

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs

Внимание!

The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.

Эту перегрузку GroupJoin вызывать не следует. Данный метод помечен как устаревший, при попытке его вызова всегда создается исключение NotSupportedException.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ParallelQuery<TResult> ^ GroupJoin(System::Linq::ParallelQuery<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, Func<TOuter, TKey> ^ outerKeySelector, Func<TInner, TKey> ^ innerKeySelector, Func<TOuter, System::Collections::Generic::IEnumerable<TInner> ^, TResult> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
[System.Obsolete("The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.")]
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
[System.Obsolete("The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.")]
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
[<System.Obsolete("The second data source of a binary operator must be of type System.Linq.ParallelQuery<T> rather than System.Collections.Generic.IEnumerable<T>. To fix this problem, use the AsParallel() extension method to convert the right data source to System.Linq.ParallelQuery<T>.")>]
static member GroupJoin : System.Linq.ParallelQuery<'Outer> * seq<'Inner> * Func<'Outer, 'Key> * Func<'Inner, 'Key> * Func<'Outer, seq<'Inner>, 'Result> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.ParallelQuery<'Result>
<Extension()>
Public Function GroupJoin(Of TOuter, TInner, TKey, TResult) (outer As ParallelQuery(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Func(Of TOuter, TKey), innerKeySelector As Func(Of TInner, TKey), resultSelector As Func(Of TOuter, IEnumerable(Of TInner), TResult), comparer As IEqualityComparer(Of TKey)) As ParallelQuery(Of TResult)

Параметры типа

TOuter

Этот параметр типа не используется.

TInner

Этот параметр типа не используется.

TKey

Этот параметр типа не используется.

TResult

Этот параметр типа не используется.

Параметры

outer
ParallelQuery<TOuter>

Этот параметр не используется.

inner
IEnumerable<TInner>

Этот параметр не используется.

outerKeySelector
Func<TOuter,TKey>

Этот параметр не используется.

innerKeySelector
Func<TInner,TKey>

Этот параметр не используется.

resultSelector
Func<TOuter,IEnumerable<TInner>,TResult>

Этот параметр не используется.

comparer
IEqualityComparer<TKey>

Этот параметр не используется.

Возвращаемое значение

ParallelQuery<TResult>

Данная перегрузка всегда создает исключение NotSupportedException.

Атрибуты

Исключения

Исключение, которое возникает при вызове этого метода.

Комментарии

Эта перегрузка существует, чтобы запретить использование GroupJoin с левым источником данных типа ParallelQuery<TSource> и правым источником данных типа IEnumerable<T>. В противном случае оператор GroupJoin, как представляется, привязывается к параллельной реализации, но в действительности привязывается к последовательной реализации.

См. также раздел

Применяется к

GroupJoin<TOuter,TInner,TKey,TResult>(ParallelQuery<TOuter>, ParallelQuery<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs
Исходный код:
ParallelEnumerable.cs

Устанавливает параллельную корреляцию между элементами двух последовательностей на основе равенства ключа и группирует результаты. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::ParallelQuery<TResult> ^ GroupJoin(System::Linq::ParallelQuery<TOuter> ^ outer, System::Linq::ParallelQuery<TInner> ^ inner, Func<TOuter, TKey> ^ outerKeySelector, Func<TInner, TKey> ^ innerKeySelector, Func<TOuter, System::Collections::Generic::IEnumerable<TInner> ^, TResult> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Linq.ParallelQuery<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
public static System.Linq.ParallelQuery<TResult> GroupJoin<TOuter,TInner,TKey,TResult> (this System.Linq.ParallelQuery<TOuter> outer, System.Linq.ParallelQuery<TInner> inner, Func<TOuter,TKey> outerKeySelector, Func<TInner,TKey> innerKeySelector, Func<TOuter,System.Collections.Generic.IEnumerable<TInner>,TResult> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member GroupJoin : System.Linq.ParallelQuery<'Outer> * System.Linq.ParallelQuery<'Inner> * Func<'Outer, 'Key> * Func<'Inner, 'Key> * Func<'Outer, seq<'Inner>, 'Result> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.ParallelQuery<'Result>
<Extension()>
Public Function GroupJoin(Of TOuter, TInner, TKey, TResult) (outer As ParallelQuery(Of TOuter), inner As ParallelQuery(Of TInner), outerKeySelector As Func(Of TOuter, TKey), innerKeySelector As Func(Of TInner, TKey), resultSelector As Func(Of TOuter, IEnumerable(Of TInner), TResult), comparer As IEqualityComparer(Of TKey)) As ParallelQuery(Of TResult)

Параметры типа

TOuter

Тип элементов первой последовательности.

TInner

Тип элементов второй последовательности.

TKey

Тип ключей, возвращаемых функциями селектора ключа.

TResult

Тип результирующих элементов.

Параметры

outer
ParallelQuery<TOuter>

Первая последовательность для соединения.

inner
ParallelQuery<TInner>

Последовательность, соединяемая с первой последовательностью.

outerKeySelector
Func<TOuter,TKey>

Функция, извлекающая ключ соединения из каждого элемента первой последовательности.

innerKeySelector
Func<TInner,TKey>

Функция, извлекающая ключ соединения из каждого элемента второй последовательности.

resultSelector
Func<TOuter,IEnumerable<TInner>,TResult>

Функция, создающая результирующий элемент для элемента первой последовательности и коллекции соответствующих элементов второй последовательности.

comparer
IEqualityComparer<TKey>

Компаратор IEqualityComparer<T>, используемый для хэширования и сравнения ключей.

Возвращаемое значение

ParallelQuery<TResult>

Последовательность, которая содержит элементы типа TResult, полученные в результате соединения двух последовательностей с группировкой.

Исключения

Запрос отменен с использованием маркера, переданного через WithCancellation<TSource>(ParallelQuery<TSource>, CancellationToken).

source или action или outer или inner или outerKeySelector или innerKeySelector или resultSelector является null (Nothing в Visual Basic).

При оценке запроса получено одно или несколько исключений.

См. также раздел

Применяется к