Auf Englisch lesen

Teilen ü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

C#
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);

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.

C#
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
*/

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

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

C#
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);
C#
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);

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0