Lire en anglais

Partager via


Queryable.Intersect Méthode

Définition

Produit l’intersection définie de deux séquences.

Surcharges

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

Produit l’intersection définie de deux séquences à l’aide du comparateur d’égalité par défaut pour comparer les valeurs.

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

Produit l’intersection définie de deux séquences à l’aide de la IEqualityComparer<T> spécifiée pour comparer les valeurs.

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Produit l’intersection définie de deux séquences à l’aide du comparateur d’égalité par défaut pour comparer les valeurs.

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

Paramètres de type

TSource

Type des éléments des séquences d’entrée.

Paramètres

source1
IQueryable<TSource>

Séquence dont les éléments distincts apparaissent également dans source2 sont retournés.

source2
IEnumerable<TSource>

Séquence dont les éléments distincts apparaissent également dans la première séquence sont retournés.

Retours

IQueryable<TSource>

Séquence qui contient l’intersection définie des deux séquences.

Exceptions

source1 ou source2 est null.

Exemples

L’exemple de code suivant montre comment utiliser Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) pour retourner les éléments qui apparaissent dans chacune des deux séquences.

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

Remarques

La méthode Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) génère une MethodCallExpression qui représente l’appel de Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) elle-même en tant que méthode générique construite. Il transmet ensuite la MethodCallExpression à la méthode CreateQuery<TElement>(Expression) de l'IQueryProvider représentée par la propriété Provider du paramètre source1.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel de Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dépend de l’implémentation du type du paramètre source1. Le comportement attendu est que tous les éléments de source1 qui se trouvent également dans source2 sont retournés.

S’applique à

.NET 9 et autres versions
Produit Versions
.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>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Produit l’intersection définie de deux séquences à l’aide de la IEqualityComparer<T> spécifiée pour comparer les valeurs.

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

Paramètres de type

TSource

Type des éléments des séquences d’entrée.

Paramètres

source1
IQueryable<TSource>

Un IQueryable<T> dont les éléments distincts apparaissent également dans source2 sont retournés.

source2
IEnumerable<TSource>

Une IEnumerable<T> dont les éléments distincts qui apparaissent également dans la première séquence sont retournés.

comparer
IEqualityComparer<TSource>

Une IEqualityComparer<T> pour comparer les valeurs.

Retours

IQueryable<TSource>

Un IQueryable<T> qui contient l’intersection définie des deux séquences.

Exceptions

source1 ou source2 est null.

Remarques

La méthode Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) génère une MethodCallExpression qui représente l’appel de Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) elle-même en tant que méthode générique construite. Il transmet ensuite la MethodCallExpression à la méthode CreateQuery<TElement>(Expression) de l'IQueryProvider représentée par la propriété Provider du paramètre source1.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel de Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) dépend de l’implémentation du type du paramètre source1. Le comportement attendu est que tous les éléments de source1 qui se trouvent également dans source2 sont retournés. Le paramètre comparer est utilisé pour comparer les éléments.

S’applique à

.NET 9 et autres versions
Produit Versions
.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