Bagikan melalui


Queryable.Except Metode

Definisi

Menghasilkan perbedaan yang ditetapkan dari dua urutan.

Overload

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

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan perbandingan kesetaraan default untuk membandingkan nilai.

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

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan yang ditentukan untuk membandingkan IEqualityComparer<T> nilai.

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

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan perbandingan kesetaraan default untuk membandingkan nilai.

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

Jenis parameter

TSource

Jenis elemen urutan input.

Parameter

source1
IQueryable<TSource>

Elemen IQueryable<T> yang tidak juga masuk source2 akan dikembalikan.

source2
IEnumerable<TSource>

Elemen IEnumerable<T> yang juga terjadi dalam urutan pertama tidak akan muncul dalam urutan yang dikembalikan.

Mengembalikan

IQueryable<TSource>

Yang IQueryable<T> berisi perbedaan yang ditetapkan dari dua urutan.

Atribut

Pengecualian

source1 atau source2 adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) untuk mengembalikan elemen yang hanya muncul dalam urutan sumber pertama.

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

Keterangan

Metode ini Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) menghasilkan MethodCallExpression yang mewakili pemanggilan Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode yang diwakili IQueryProvider oleh Provider propertisource1 parameter.

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) tergantung pada implementasi jenis source1 parameter. Perilaku yang diharapkan adalah bahwa semua elemen di source1 dikembalikan kecuali untuk yang juga ada di source2.

Berlaku untuk

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

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan yang ditentukan untuk membandingkan IEqualityComparer<T> nilai.

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

Jenis parameter

TSource

Jenis elemen urutan input.

Parameter

source1
IQueryable<TSource>

Elemen IQueryable<T> yang tidak juga masuk source2 akan dikembalikan.

source2
IEnumerable<TSource>

Elemen IEnumerable<T> yang juga terjadi dalam urutan pertama tidak akan muncul dalam urutan yang dikembalikan.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T> Untuk membandingkan nilai.

Mengembalikan

IQueryable<TSource>

Yang IQueryable<T> berisi perbedaan yang ditetapkan dari dua urutan.

Atribut

Pengecualian

source1 atau source2 adalah null.

Keterangan

Metode ini Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) menghasilkan MethodCallExpression yang mewakili pemanggilan Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode yang diwakili IQueryProvider oleh Provider propertisource1 parameter.

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) tergantung pada implementasi jenis source1 parameter. Perilaku yang diharapkan adalah bahwa semua elemen di source1 dikembalikan kecuali untuk yang juga ada di source2, dan comparer digunakan untuk membandingkan nilai.

Berlaku untuk