Queryable.Union Metod

Definition

Skapar uppsättningen union av två sekvenser.

Överlagringar

Name Description
Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Skapar uppsättningsunionen med två sekvenser med hjälp av standardjämförlikningsjämföraren.

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

Skapar uppsättningen union av två sekvenser med hjälp av en angiven IEqualityComparer<T>.

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

Skapar uppsättningsunionen med två sekvenser med hjälp av standardjämförlikningsjämföraren.

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

Typparametrar

TSource

Typ av element i indatasekvenserna.

Parametrar

source1
IQueryable<TSource>

En sekvens vars distinkta element utgör den första uppsättningen för unionsåtgärden.

source2
IEnumerable<TSource>

En sekvens vars distinkta element utgör den andra uppsättningen för unionsåtgärden.

Returer

IQueryable<TSource>

En IQueryable<T> som innehåller elementen från båda indatasekvenserna, exklusive dubbletter.

Undantag

source1 eller source2 är null.

Exempel

Följande kodexempel visar hur du använder Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) för att hämta den angivna unionen av två sekvenser.

int[] ints1 = { 5, 3, 9, 7, 5, 9, 3, 7 };
int[] ints2 = { 8, 3, 6, 4, 4, 9, 1, 0 };

// Get the set union of the items in the two arrays.
IEnumerable<int> union = ints1.AsQueryable().Union(ints2);

foreach (int num in union)
    Console.Write("{0} ", num);

/*
    This code produces the following output:

    5 3 9 7 8 6 4 1 0
*/
Dim ints1() As Integer = {5, 3, 9, 7, 5, 9, 3, 7}
Dim ints2() As Integer = {8, 3, 6, 4, 4, 9, 1, 0}

' Get the set union of the items in the two arrays.
Dim union = ints1.AsQueryable().Union(ints2)

Dim output As New System.Text.StringBuilder
For Each num As Integer In union
    output.Append(String.Format("{0} ", num))
Next

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

' This code produces the following output:

' 5 3 9 7 8 6 4 1 0

Kommentarer

Metoden Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) genererar en MethodCallExpression som representerar att anropa Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource1.MethodCallExpression

Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) körs beror på implementeringen av source1 parametertypen. Det förväntade beteendet är att uppsättningen av elementen i source1 och source2 returneras.

Gäller för

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

Skapar uppsättningen union av två sekvenser med hjälp av en angiven IEqualityComparer<T>.

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

Typparametrar

TSource

Typ av element i indatasekvenserna.

Parametrar

source1
IQueryable<TSource>

En sekvens vars distinkta element utgör den första uppsättningen för unionsåtgärden.

source2
IEnumerable<TSource>

En sekvens vars distinkta element utgör den andra uppsättningen för unionsåtgärden.

comparer
IEqualityComparer<TSource>

En IEqualityComparer<T> för att jämföra värden.

Returer

IQueryable<TSource>

En IQueryable<T> som innehåller elementen från båda indatasekvenserna, exklusive dubbletter.

Undantag

source1 eller source2 är null.

Kommentarer

Metoden Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) genererar en MethodCallExpression som representerar att anropa Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource1.MethodCallExpression

Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) körs beror på implementeringen av source1 parametertypen. Det förväntade beteendet är att uppsättningen av elementen i source1 och source2 returneras. Parametern comparer används för att jämföra värden.

Gäller för