Queryable.Intersect Метод

Определение

Находит пересечение множеств, представленных двумя последовательностями.Produces the set intersection of two sequences.

Перегрузки

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию.Produces the set intersection of two sequences by using the default equality comparer to compare values.

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>.Produces the set intersection of two sequences by using the specified IEqualityComparer<T> to compare values.

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию.Produces the set intersection of two sequences by using the default equality comparer to compare values.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Intersect(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2);
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);
static member Intersect : System.Linq.IQueryable<'Source> * seq<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Intersect(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource)) As IQueryable(Of TSource)

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

TSource

Тип элементов входных последовательностей.The type of the elements of the input sequences.

Параметры

source1
IQueryable<TSource>

Последовательность, из которой возвращаются различающиеся элементы, входящие также в source2.A sequence whose distinct elements that also appear in source2 are returned.

source2
IEnumerable<TSource>

Последовательность, из которой возвращаются различающиеся элементы, входящие также в первую последовательность.A sequence whose distinct elements that also appear in the first sequence are returned.

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

IQueryable<TSource>

Последовательность, представляющая собой пересечение двух заданных последовательностей как множеств.A sequence that contains the set intersection of the two sequences.

Исключения

Параметр source1 или source2 имеет значение null.source1 or source2 is null.

Примеры

В следующем примере кода показано, как использовать Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) для возврата элементов, которые отображаются в каждой из двух последовательностей.The following code example demonstrates how to use Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) to return the elements that appear in each of two sequences.

int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

// Get the numbers that occur in both arrays (id1 and id2).
IEnumerable<int> both = id1.AsQueryable().Intersect(id2);

foreach (int id in both)
    Console.WriteLine(id);

/*
    This code produces the following output:

    26
    30
*/
Dim id1() As Integer = {44, 26, 92, 30, 71, 38}
Dim id2() As Integer = {39, 59, 83, 47, 26, 4, 30}

' Get the numbers that occur in both arrays (id1 and id2).
Dim both As IEnumerable(Of Integer) = id1.AsQueryable().Intersect(id2)

Dim output As New System.Text.StringBuilder
For Each id As Integer In both
    output.AppendLine(id)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:

' 26
' 30

Комментарии

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)Метод создает объект MethodCallExpression , который представляет вызов Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) самого себя как сконструированного универсального метода.The Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) method generates a MethodCallExpression that represents calling Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itself as a constructed generic method. Затем он передает MethodCallExpression CreateQuery<TElement>(Expression) методу класса, IQueryProvider представленного Provider свойством source1 параметра.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source1 parameter.

Поведение запроса, которое происходит в результате выполнения дерева выражения, представляющего вызов, Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) зависит от реализации типа source1 параметра.The query behavior that occurs as a result of executing an expression tree that represents calling Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depends on the implementation of the type of the source1 parameter. Ожидаемое поведение заключается в том, что возвращаются все элементы source1 , которые также находятся в source2 .The expected behavior is that all the elements in source1 that are also in source2 are returned.

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

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>.Produces the set intersection of two sequences by using the specified IEqualityComparer<T> to compare values.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Intersect(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2, System::Collections::Generic::IEqualityComparer<TSource> ^ comparer);
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource> comparer);
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource>? comparer);
static member Intersect : System.Linq.IQueryable<'Source> * seq<'Source> * System.Collections.Generic.IEqualityComparer<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Intersect(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource), comparer As IEqualityComparer(Of TSource)) As IQueryable(Of TSource)

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

TSource

Тип элементов входных последовательностей.The type of the elements of the input sequences.

Параметры

source1
IQueryable<TSource>

Объект IQueryable<T>, из которого требуется извлечь различающиеся элементы, входящие также в последовательность source2.An IQueryable<T> whose distinct elements that also appear in source2 are returned.

source2
IEnumerable<TSource>

Объект IEnumerable<T>, из которого извлекаются различающиеся элементы, входящие также в первую последовательность.An IEnumerable<T> whose distinct elements that also appear in the first sequence are returned.

comparer
IEqualityComparer<TSource>

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

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

IQueryable<TSource>

Объект IQueryable<T>, являющийся пересечением двух последовательностей как множеств.An IQueryable<T> that contains the set intersection of the two sequences.

Исключения

Параметр source1 или source2 имеет значение null.source1 or source2 is null.

Комментарии

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)Метод создает объект MethodCallExpression , который представляет вызов Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) самого себя как сконструированного универсального метода.The Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) method generates a MethodCallExpression that represents calling Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) itself as a constructed generic method. Затем он передает MethodCallExpression CreateQuery<TElement>(Expression) методу класса, IQueryProvider представленного Provider свойством source1 параметра.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source1 parameter.

Поведение запроса, которое происходит в результате выполнения дерева выражения, представляющего вызов, Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) зависит от реализации типа source1 параметра.The query behavior that occurs as a result of executing an expression tree that represents calling Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) depends on the implementation of the type of the source1 parameter. Ожидаемое поведение заключается в том, что возвращаются все элементы source1 , которые также находятся в source2 .The expected behavior is that all the elements in source1 that are also in source2 are returned. comparerПараметр используется для сравнения элементов.The comparer parameter is used to compare elements.

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