Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Queryable.Except<TSource>-Methode: (IQueryable<TSource>, IEnumerable<TSource>)

 

Veröffentlicht: Oktober 2016

Erzeugt die Differenzmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten.

Namespace:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IQueryable<TSource> Except<TSource>(
	this IQueryable<TSource> source1,
	IEnumerable<TSource> source2
)

Parameter

source1
Type: System.Linq.IQueryable<TSource>

Ein IQueryable<T> dessen Elemente, die auch in source2 zurückgegeben werden.

source2
Type: System.Collections.Generic.IEnumerable<TSource>

Ein IEnumerable<T> dessen Elemente, die auch in der ersten Sequenz auftreten, erscheint nicht in der zurückgegebenen Sequenz.

Rückgabewert

Type: System.Linq.IQueryable<TSource>

Eine IQueryable<T> die die Differenzmenge von zwei Sequenzen enthält.

Typparameter

TSource

Der Typ der Elemente der Eingabesequenzen.

Exception Condition
ArgumentNullException

source1 oder source2 ist null.

Die Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) -Methode generiert eine MethodCallExpression Aufruf darstellt Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sich selbst als konstruierte generische Methode. Anschließend übergibt der MethodCallExpression zu der CreateQuery<TElement>(Expression) Methode der IQueryProvider durch dargestellt die Provider Eigenschaft dersource1 Parameter.

Das Abfrageverhalten durch das Ausführen einer Ausdrucksbaumstruktur, die aufrufende darstellt, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) hängt von der Implementierung des Typs der source1 Parameter. Das erwartete Verhalten ist, die alle Elemente im source1 zurückgegeben werden, die auch in sind source2.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) auf die Elemente, die nur in der ersten Quellsequenz zurück.

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
*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.1
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: