Enumerable.IntersectBy Метод

Определение

Перегрузки

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ IntersectBy(System::Collections::Generic::IEnumerable<TSource> ^ first, System::Collections::Generic::IEnumerable<TKey> ^ second, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Collections.Generic.IEnumerable<TSource> IntersectBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> first, System.Collections.Generic.IEnumerable<TKey> second, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member IntersectBy : seq<'Source> * seq<'Key> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<'Source>
<Extension()>
Public Function IntersectBy(Of TSource, TKey) (first As IEnumerable(Of TSource), second As IEnumerable(Of TKey), keySelector As Func(Of TSource, TKey), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of TSource)

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

TSource

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

TKey

Тип ключа для идентификации элементов.

Параметры

first
IEnumerable<TSource>

Объект IEnumerable<T>, из которого извлекаются различающиеся элементы, входящие также в последовательность second.

second
IEnumerable<TKey>

Объект IEnumerable<T>, из которого извлекаются различающиеся элементы, входящие также в первую последовательность.

keySelector
Func<TSource,TKey>

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

comparer
IEqualityComparer<TKey>

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

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

IEnumerable<TSource>

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

Исключения

Параметр first или second имеет значение null.

Комментарии

Этот метод реализуется с помощью отложенного выполнения. Немедленно возвращаемое значение — это объект, в котором хранятся все сведения, необходимые для выполнения действия. Запрос, представленный этим методом, не выполняется до тех пор, пока объект не будет перечислен либо путем вызова его GetEnumerator метода напрямую, либо с помощью foreach в C# или For Each в Visual Basic.

Пересечение двух наборов A и B определяется как набор, содержащий все элементы A, которые также отображаются в B, но не содержат других элементов.

При перечислении объекта, возвращаемого этим методом, возвращает отдельные элементы, происходящие в обеих последовательностях, в том порядке, Intersect в котором они отображаются в first.

Если comparer имеет значение null, для сравнения значений используется компаратор Defaultравенства по умолчанию .

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

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

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ IntersectBy(System::Collections::Generic::IEnumerable<TSource> ^ first, System::Collections::Generic::IEnumerable<TKey> ^ second, Func<TSource, TKey> ^ keySelector);
public static System.Collections.Generic.IEnumerable<TSource> IntersectBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> first, System.Collections.Generic.IEnumerable<TKey> second, Func<TSource,TKey> keySelector);
static member IntersectBy : seq<'Source> * seq<'Key> * Func<'Source, 'Key> -> seq<'Source>
<Extension()>
Public Function IntersectBy(Of TSource, TKey) (first As IEnumerable(Of TSource), second As IEnumerable(Of TKey), keySelector As Func(Of TSource, TKey)) As IEnumerable(Of TSource)

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

TSource

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

TKey

Тип ключа для идентификации элементов.

Параметры

first
IEnumerable<TSource>

Объект IEnumerable<T>, из которого извлекаются различающиеся элементы, входящие также в последовательность second.

second
IEnumerable<TKey>

Объект IEnumerable<T>, из которого извлекаются различающиеся элементы, входящие также в первую последовательность.

keySelector
Func<TSource,TKey>

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

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

IEnumerable<TSource>

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

Исключения

Параметр first или second имеет значение null.

Комментарии

Этот метод реализуется с помощью отложенного выполнения. Немедленно возвращаемое значение — это объект, в котором хранятся все сведения, необходимые для выполнения действия. Запрос, представленный этим методом, не выполняется до тех пор, пока объект не будет перечислен либо путем вызова его GetEnumerator метода напрямую, либо с помощью foreach в C# или For Each в Visual Basic.

Пересечение двух наборов A и B определяется как набор, содержащий все элементы A, которые также отображаются в B, но не содержат других элементов.

При перечислении объекта, возвращаемого этим методом, возвращает отдельные элементы, происходящие в обеих последовательностях, в том порядке, Intersect в котором они отображаются в first.

Для сравнения значений Defaultиспользуется компаратор равенства по умолчанию .

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

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