Queryable.Union 方法

定義

產生兩個序列的集合等位。

多載

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

使用預設相等比較值來比較值,以便產生兩個序列的集合等位。

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

使用指定的 IEqualityComparer<T> 產生兩個序列的集合等位。

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

使用預設相等比較值來比較值,以便產生兩個序列的集合等位。

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)

類型參數

TSource

輸入序列之項目的類型。

參數

source1
IQueryable<TSource>

序列,其獨特項目構成等位作業的第一個集合。

source2
IEnumerable<TSource>

序列,其獨特項目構成等位作業的第二個集合。

傳回

IQueryable<TSource>

IQueryable<T>,其中包含來自兩個輸入序列的項目,但不包括重複的項目。

例外狀況

source1source2null

範例

下列程式碼範例示範如何使用 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 來取得兩個序列的集合聯集。

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

備註

方法 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 會產生 , MethodCallExpression 表示呼叫 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 本身為建構的泛型方法。 然後,它會將 傳遞給 MethodCallExpressionCreateQuery<TElement>(Expression) 參數之 屬性所 Provider 表示的 方法 IQueryProvidersource1

執行表示呼叫 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 的運算式樹狀結構所產生的查詢行為,取決於參數類型的實作 source1 。 預期的行為是 和 中 source1source2 專案的集合聯集傳回。

適用於

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

使用指定的 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);
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)

類型參數

TSource

輸入序列之項目的類型。

參數

source1
IQueryable<TSource>

序列,其獨特項目構成等位作業的第一個集合。

source2
IEnumerable<TSource>

序列,其獨特項目構成等位作業的第二個集合。

comparer
IEqualityComparer<TSource>

用來比較值的 IEqualityComparer<T>

傳回

IQueryable<TSource>

IQueryable<T>,其中包含來自兩個輸入序列的項目,但不包括重複的項目。

例外狀況

source1source2null

備註

方法 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 會產生 , MethodCallExpression 表示呼叫 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 本身為建構的泛型方法。 然後,它會將 傳遞給 MethodCallExpressionCreateQuery<TElement>(Expression) 參數之 屬性所 Provider 表示的 方法 IQueryProvidersource1

執行表示呼叫 Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 的運算式樹狀結構所產生的查詢行為,取決於參數類型的實作 source1 。 預期的行為是 和 中 source1source2 專案的集合聯集傳回。 參數 comparer 是用來比較值。

適用於