Auf Englisch lesen

Teilen über


Queryable.Single Methode

Definition

Gibt ein einzelnes spezifisches Element einer Sequenz zurück

Überlädt

Single<TSource>(IQueryable<TSource>)

Gibt das einzige Element einer Sequenz zurück und löst eine Ausnahme aus, wenn nicht genau ein Element in der Sequenz vorhanden ist.

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

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.

Single<TSource>(IQueryable<TSource>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Gibt das einzige Element einer Sequenz zurück und löst eine Ausnahme aus, wenn nicht genau ein Element in der Sequenz vorhanden ist.

C#
public static TSource Single<TSource> (this System.Linq.IQueryable<TSource> source);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Ein IQueryable<T>, dessen einziges Element zurückgegeben werden soll

Gibt zurück

TSource

Das einzige Element der Eingabesequenz.

Ausnahmen

source ist null.

source hat mehr als ein Element.

- oder -

Die Quellsequenz ist leer.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie verwenden Single<TSource>(IQueryable<TSource>) , um das einzige Element eines Arrays auszuwählen.

C#
// Create two arrays.
string[] fruits1 = { "orange" };
string[] fruits2 = { "orange", "apple" };

// Get the only item in the first array.
string fruit1 = fruits1.AsQueryable().Single();

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

try
{
    // Try to get the only item in the second array.
    string fruit2 = fruits2.AsQueryable().Single();
    Console.WriteLine("Second query: " + fruit2);
}
catch (System.InvalidOperationException)
{
    Console.WriteLine(
        "Second query: The collection does not contain exactly one element."
        );
}

/*
    This code produces the following output:

    First query: orange
    Second query: The collection does not contain exactly one element
*/

Hinweise

Die Single<TSource>(IQueryable<TSource>) -Methode generiert eine MethodCallExpression , die den Aufruf Single<TSource>(IQueryable<TSource>) selbst als konstruierte generische Methode darstellt. Anschließend wird an MethodCallExpression die Execute<TResult>(Expression) -Methode des übergeben, das IQueryProvider durch die Provider -Eigenschaft des source -Parameters dargestellt wird.

Das Abfrageverhalten, das als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die den Aufruf Single<TSource>(IQueryable<TSource>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass das einzige Element in sourcezurückgegeben wird.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

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.

C#
public static TSource Single<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Ein IQueryable<T>, aus dem ein einzelnes Element zurückgegeben werden soll

predicate
Expression<Func<TSource,Boolean>>

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

Gibt zurück

TSource

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

Ausnahmen

source oder predicate ist null.

Kein Element erfüllt die Bedingung in predicate.

- oder -

Die Bedingung in predicate wird von mehreren Elementen erfüllt.

- oder -

Die Quellsequenz ist leer.

Beispiele

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

C#
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.
 */

Hinweise

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate> , dessen Typargument einer der Func<T,TResult> Typen ist. Für diese Parameter können Sie einen Lambdaausdruck übergeben, der zu einem Expression<TDelegate>kompiliert wird.

Die Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) -Methode generiert eine MethodCallExpression , die den Aufruf Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) selbst als konstruierte generische Methode darstellt. Anschließend wird an MethodCallExpression die Execute<TResult>(Expression) -Methode des übergeben, das IQueryProvider durch die Provider -Eigenschaft des source -Parameters dargestellt wird.

Das Abfrageverhalten, das als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die den Aufruf Single<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass das einzige Element in source zurückgegeben wird, das die von predicateangegebene Bedingung erfüllt.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0