Freigeben über


Queryable.Intersect Methode

Definition

Erzeugt die Schnittmenge zweier Sequenzen

Überlädt

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

Erzeugt die Schnittmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten

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

Erzeugt mithilfe des angegebenen IEqualityComparer<T> zum Vergleichen von Werten die Schnittmenge von zwei Sequenzen

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

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Erzeugt die Schnittmenge zweier Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten

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)

Typparameter

TSource

Der Typ der Elemente der Eingabesequenzen.

Parameter

source1
IQueryable<TSource>

Eine Sequenz, deren unterschiedliche Elemente, die auch in source2 vorhanden sind, zurückgegeben werden.

source2
IEnumerable<TSource>

Eine Sequenz, deren unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden.

Gibt zurück

IQueryable<TSource>

Eine Sequenz, die die Schnittmenge der beiden Sequenzen enthält.

Ausnahmen

source1 oder source2 ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) die Elemente zurückgegeben werden, die in jeder von zwei Sequenzen angezeigt werden.

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

Hinweise

Die Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) -Methode generiert eine MethodCallExpression , die den Aufruf Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) selbst als konstruierte generische Methode darstellt. Anschließend übergibt es die MethodCallExpression an die CreateQuery<TElement>(Expression) -Methode von, die IQueryProvider durch die Provider -Eigenschaft des source1 Parameters dargestellt wird.

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) darstellt, hängt von der Implementierung des Typs des source1 Parameters ab. Das erwartete Verhalten besteht darin, dass alle Elemente, source1 die sich ebenfalls in source2 befinden, zurückgegeben werden.

Gilt für:

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

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Erzeugt mithilfe des angegebenen IEqualityComparer<T> zum Vergleichen von Werten die Schnittmenge von zwei Sequenzen

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)

Typparameter

TSource

Der Typ der Elemente der Eingabesequenzen.

Parameter

source1
IQueryable<TSource>

Ein IQueryable<T>, dessen unterschiedliche Elemente, die auch in source2 vorhanden sind, zurückgegeben werden.

source2
IEnumerable<TSource>

Ein IEnumerable<T>, dessen unterschiedliche Elemente, die auch in der ersten Sequenz vorhanden sind, zurückgegeben werden.

comparer
IEqualityComparer<TSource>

Ein IEqualityComparer<T> zum Vergleichen von Werten.

Gibt zurück

IQueryable<TSource>

Ein IQueryable<T>, das die Schnittmenge der beiden Sequenzen enthält.

Ausnahmen

source1 oder source2 ist null.

Hinweise

Die Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) -Methode generiert eine MethodCallExpression , die den Aufruf Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) selbst als konstruierte generische Methode darstellt. Anschließend übergibt es die MethodCallExpression an die CreateQuery<TElement>(Expression) -Methode von, die IQueryProvider durch die Provider -Eigenschaft des source1 Parameters dargestellt wird.

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) darstellt, hängt von der Implementierung des Typs des source1 Parameters ab. Das erwartete Verhalten besteht darin, dass alle Elemente, source1 die sich ebenfalls in source2 befinden, zurückgegeben werden. Der comparer Parameter wird verwendet, um Elemente zu vergleichen.

Gilt für: