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.DefaultIfEmpty<TSource>-Methode: (IQueryable<TSource>)

 

Veröffentlicht: Oktober 2016

Gibt die Elemente der angegebenen Sequenz oder den Standardwert des Typparameters in einer singletonauflistung zurück, wenn die Sequenz leer ist.

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

public static IQueryable<TSource> DefaultIfEmpty<TSource>(
	this IQueryable<TSource> source
)

Parameter

source
Type: System.Linq.IQueryable<TSource>

Die IQueryable<T> für einen Standardwert wird zurückgegeben, wenn leer.

Rückgabewert

Type: System.Linq.IQueryable<TSource>

Ein IQueryable<T> enthält default(TSource) Wenn source leer ist, andernfalls wird source.

Typparameter

TSource

Der Typ der Elemente von source.

Exception Condition
ArgumentNullException

source ist null.

Die DefaultIfEmpty<TSource>(IQueryable<TSource>) -Methode generiert eine MethodCallExpression Aufruf darstellt DefaultIfEmpty<TSource>(IQueryable<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 der source Parameter.

Das Abfrageverhalten durch das Ausführen einer Ausdrucksbaumstruktur, die aufrufende darstellt, DefaultIfEmpty<TSource>(IQueryable<TSource>) hängt von der Implementierung des Typs der source Parameter. Das erwartete Verhalten ist, dass zurückgegeben source wenn er nicht leer ist. Andernfalls gibt es ein IQueryable<T> enthält default(TSource).

Im folgenden Codebeispiel wird veranschaulicht, wie mit DefaultIfEmpty<TSource>(IQueryable<TSource>) einen Standardwert bereitgestellt wird, falls die Quellsequenz leer ist.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void DefaultIfEmptyEx1()
{
    // Create a list of Pet objects.
    List<Pet> pets =
        new List<Pet>{ new Pet { Name="Barley", Age=8 },
                       new Pet { Name="Boots", Age=4 },
                       new Pet { Name="Whiskers", Age=1 } };

    // Call DefaultIfEmtpy() on the collection that Select()
    // returns, so that if the initial list is empty, there
    // will always be at least one item in the returned array.
    string[] names =
        pets.AsQueryable()
        .Select(pet => pet.Name)
        .DefaultIfEmpty()
        .ToArray();

    string first = names[0];
    Console.WriteLine(first);
}

/*
    This code produces the following output:

    Barley
*/

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: