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

Enumerable.DefaultIfEmpty<TSource>-Methode: (IEnumerable<TSource>, TSource)

 

Veröffentlicht: Oktober 2016

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

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

public static IEnumerable<TSource> DefaultIfEmpty<TSource>(
	this IEnumerable<TSource> source,
	TSource defaultValue
)

Parameter

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

Die Sequenz, für die der angegebene Wert zurückgegeben werden soll, wenn sie leer ist.

defaultValue
Type: TSource

Der Wert, der zurückgegeben werden soll, wenn die Sequenz leer ist.

Rückgabewert

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

Ein IEnumerable<T> enthält defaultValue Wenn source leer ist, andernfalls wird source.

Typparameter

TSource

Der Typ der Elemente von source.

Diese Methode wird mit verzögerter Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen gespeichert hat, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird nicht ausgeführt, bis das Objekt aufgelistet wird, entweder durch Aufrufen der GetEnumerator -Methode direkt oder mithilfe von foreach in Visual C# oder For Each in Visual Basic.

Diese Methode kann verwendet werden, um eine linke äußere Verknüpfung zu erstellen, zusammen mit den GroupJoin<TOuter, TInner, TKey, TResult>) Methode.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) Methode und einen Standardwert angeben. Die erste Sequenz nicht leer ist, und die zweite Sequenz leer ist.

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

public static void DefaultIfEmptyEx2()
{
    Pet defaultPet = new Pet { Name = "Default Pet", Age = 0 };

    List<Pet> pets1 =
        new List<Pet>{ new Pet { Name="Barley", Age=8 },
                       new Pet { Name="Boots", Age=4 },
                       new Pet { Name="Whiskers", Age=1 } };

    foreach (Pet pet in pets1.DefaultIfEmpty(defaultPet))
    {
        Console.WriteLine("Name: {0}", pet.Name);
    }

    List<Pet> pets2 = new List<Pet>();

    foreach (Pet pet in pets2.DefaultIfEmpty(defaultPet))
    {
        Console.WriteLine("\nName: {0}", pet.Name);
    }
}

/*
 This code produces the following output:

 Name: Barley
 Name: Boots
 Name: Whiskers

 Name: Default Pet
*/

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.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: