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.Single<TSource>-Methode: (IQueryable<TSource>, Expression<Func<TSource, Boolean>>)

 

Veröffentlicht: Oktober 2016

Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, und löst eine Ausnahme aus, wenn mehrere solche Elemente vorhanden sind.

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

public static TSource Single<TSource>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, bool>> predicate
)

Parameter

source
Type: System.Linq.IQueryable<TSource>

Ein IQueryable<T> ein einzelnes Element zurückgeben.

predicate
Type: System.Linq.Expressions.Expression<Func<TSource, Boolean>>

Eine Funktion zum Überprüfen eines Elements auf eine Bedingung.

Rückgabewert

Type: TSource

Das einzige Element der Eingabesequenz, das die Bedingung in predicate.

Typparameter

TSource

Der Typ der Elemente von source.

Exception Condition
ArgumentNullException

source oder predicate ist null.

InvalidOperationException

Kein Element erfüllt die Bedingung in predicate.

- oder -

Mehr als ein Element erfüllt die Bedingung in predicate.

- oder -

Die Quellsequenz ist leer.

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate> deren Typargument ist eines der Func<T, TResult> Typen. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, und es werden kompiliert, um eine Expression<TDelegate>.

Die Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) -Methode generiert eine MethodCallExpression Aufruf darstellt Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) sich selbst als konstruierte generische Methode. Anschließend übergibt der MethodCallExpression zu der Execute<TResult>(Expression) Methode der IQueryProvider durch dargestellt die Provider Eigenschaft der source Parameter.

Das Abfrageverhalten durch das Ausführen einer Ausdrucksbaumstruktur, die aufrufende darstellt, Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) hängt von der Implementierung des Typs der source Parameter. Das erwartete Verhalten ist das einzige Element im zurück source die die angegebene Bedingung erfüllt predicate.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie Single<TSource>(IQueryable<TSource>, Expression<Func<TSource, Boolean>>) das einzige Element eines Arrays auswählen, das eine Bedingung erfüllt.

string[] fruits = { "apple", "banana", "mango", 
                      "orange", "passionfruit", "grape" };

// Get the only string in the array whose length is greater than 10.
string fruit1 = fruits.AsQueryable().Single(fruit => fruit.Length > 10);

Console.WriteLine("First Query: " + fruit1);

try
{
    // Try to get the only string in the array
    // whose length is greater than 15.
    string fruit2 = fruits.AsQueryable().Single(fruit => fruit.Length > 15);
    Console.WriteLine("Second Query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.Write("Second Query: The collection does not contain ");
    Console.WriteLine("exactly one element whose length is greater than 15.");
}

/*
    This code produces the following output:

    First Query: passionfruit
    Second Query: The collection does not contain exactly one 
    element whose length is greater than 15.
 */

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: