Queryable.Intersect Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří průnik množiny dvou sekvencí.
Přetížení
| Name | Description |
|---|---|
| Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Vytvoří průnik sady dvou sekvencí pomocí výchozího porovnávače rovnosti k porovnání hodnot. |
| Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří průnik sady dvou sekvencí pomocí zadaného IEqualityComparer<T> k porovnání hodnot. |
Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří průnik sady dvou sekvencí pomocí výchozího porovnávače rovnosti k porovnání hodnot.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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)
Parametry typu
- TSource
Typ prvků vstupních sekvencí.
Parametry
- source1
- IQueryable<TSource>
Vrátí se sekvence, jejíž jedinečné prvky se také zobrazují source2 .
- source2
- IEnumerable<TSource>
Vrátí se sekvence, jejíž jedinečné prvky se zobrazí také v první sekvenci.
Návraty
Sekvence, která obsahuje průnik množiny dvou sekvencí.
- Atributy
Výjimky
source1 nebo source2 je null.
Příklady
Následující příklad kódu ukazuje, jak použít Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) k vrácení prvků, které se zobrazují v každé ze dvou sekvencí.
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
Poznámky
Metoda Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource1.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , závisí na implementaci typu parametru source1 . Očekávané chování je, že se vrátí všechny prvky, které source1 jsou také v source2 .
Platí pro
Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří průnik sady dvou sekvencí pomocí zadaného IEqualityComparer<T> k porovnání hodnot.
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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)
Parametry typu
- TSource
Typ prvků vstupních sekvencí.
Parametry
- source1
- IQueryable<TSource>
Vrátí se IQueryable<T> jedinečné prvky, které source2 se také objeví.
- source2
- IEnumerable<TSource>
Vrátí se IEnumerable<T> jedinečné prvky, které se zobrazí také v první sekvenci.
- comparer
- IEqualityComparer<TSource>
Hodnota IEqualityComparer<T> pro porovnání hodnot.
Návraty
Ten IQueryable<T> obsahuje průnik množiny dvou sekvencí.
- Atributy
Výjimky
source1 nebo source2 je null.
Poznámky
Metoda Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource1.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) , závisí na implementaci typu parametru source1 . Očekávané chování je, že se vrátí všechny prvky, které source1 jsou také v source2 . Parametr comparer se používá k porovnání prvků.