Queryable.Except Queryable.Except Queryable.Except Queryable.Except Method

定義

2 つのシーケンスの差集合を生成します。Produces the set difference of two sequences.

オーバーロード

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

指定したを使用して 2 つのシーケンスの差集合を生成IEqualityComparer<T>値を比較します。Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

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

値を比較する既定の等値比較子を使用して、2 つのシーケンスの差集合を生成します。Produces the set difference of two sequences by using the default equality comparer to compare values.

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

指定したを使用して 2 つのシーケンスの差集合を生成IEqualityComparer<T>値を比較します。Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

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

型パラメーター

TSource

入力シーケンスの要素の型。The type of the elements of the input sequences.

パラメーター

source1
IQueryable<TSource>

IQueryable<T>含まれていない要素を持つsource2が返されます。An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>最初のシーケンスにも発生する要素は、返されたシーケンスには表示されません。An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

comparer
IEqualityComparer<TSource>

値を比較する IEqualityComparer<T>An IEqualityComparer<T> to compare values.

戻り値

IQueryable<TSource>

IQueryable<T> 2 つのシーケンスの差集合を格納しています。An IQueryable<T> that contains the set difference of the two sequences.

例外

source1 または source2null です。source1 or source2 is null.

注釈

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)メソッドを生成、MethodCallExpression呼び出しを表すExcept<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)として構築されたジェネリック メソッド自体。The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) itself as a constructed generic method. これは、後、渡します、MethodCallExpressionCreateQuery<TElement>(Expression)のメソッド、IQueryProviderによって表される、Providerのプロパティ、source1パラメーター。It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

呼び出し元を表す式ツリーを実行した結果として発生するクエリの動作Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)の型の実装によって異なります、source1パラメーター。The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) depends on the implementation of the type of the source1 parameter. 想定される動作はのすべての要素source1も含まれているものを除く返されるsource2、およびcomparer値を比較するために使用します。The expected behavior is that all the elements in source1 are returned except for those that are also in source2, and comparer is used to compare values.

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

値を比較する既定の等値比較子を使用して、2 つのシーケンスの差集合を生成します。Produces the set difference of two sequences by using the default equality comparer to compare values.

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

型パラメーター

TSource

入力シーケンスの要素の型。The type of the elements of the input sequences.

パラメーター

source1
IQueryable<TSource>

IQueryable<T>含まれていない要素を持つsource2が返されます。An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>最初のシーケンスにも発生する要素は、返されたシーケンスには表示されません。An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

戻り値

IQueryable<TSource>

IQueryable<T> 2 つのシーケンスの差集合を格納しています。An IQueryable<T> that contains the set difference of the two sequences.

例外

source1 または source2null です。source1 or source2 is null.

次のコード例は、使用する方法を示しますExcept<TSource>(IQueryable<TSource>, IEnumerable<TSource>)を最初のソース シーケンスにのみ表示されるこれらの要素を返します。The following code example demonstrates how to use Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) to return those elements that only appear in the first source sequence.

double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };

// Get the numbers from the first array that
// are NOT in the second array.
IEnumerable<double> onlyInFirstSet =
    numbers1.AsQueryable().Except(numbers2);

foreach (double number in onlyInFirstSet)
    Console.WriteLine(number);

/*
    This code produces the following output:

    2
    2.1
    2.3
    2.4
    2.5
*/

Dim numbers1() As Double = {2.0, 2.1, 2.2, 2.3, 2.4, 2.5}
Dim numbers2() As Double = {2.2}

' Get the numbers from the first array that
' are NOT in the second array.
Dim onlyInFirstSet As IEnumerable(Of Double) = _
    numbers1.AsQueryable().Except(numbers2)

Dim output As New System.Text.StringBuilder
For Each number As Double In onlyInFirstSet
    output.AppendLine(number)
Next

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

' This code produces the following output:
'
' 2
' 2.1
' 2.3
' 2.4
' 2.5

注釈

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)メソッドを生成、MethodCallExpression呼び出しを表すExcept<TSource>(IQueryable<TSource>, IEnumerable<TSource>)として構築されたジェネリック メソッド自体。The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itself as a constructed generic method. これは、後、渡します、MethodCallExpressionCreateQuery<TElement>(Expression)のメソッド、IQueryProviderによって表される、Providerのプロパティ、source1パラメーター。It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

呼び出し元を表す式ツリーを実行した結果として発生するクエリの動作Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)の型の実装によって異なります、source1パラメーター。The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depends on the implementation of the type of the source1 parameter. 想定される動作はのすべての要素source1も含まれているものを除く返されるsource2します。The expected behavior is that all the elements in source1 are returned except for those that are also in source2.

適用対象