Lire en anglais

Partager via


Enumerable.DefaultIfEmpty Méthode

Définition

Retourne les éléments d’un IEnumerable<T>ou une collection singleton par défaut si la séquence est vide.

Surcharges

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Retourne les éléments de la séquence spécifiée ou la valeur par défaut du paramètre de type dans une collection singleton si la séquence est vide.

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Retourne les éléments de la séquence spécifiée ou la valeur spécifiée dans une collection singleton si la séquence est vide.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Source:
DefaultIfEmpty.cs
Source:
DefaultIfEmpty.cs
Source:
DefaultIfEmpty.cs

Retourne les éléments de la séquence spécifiée ou la valeur par défaut du paramètre de type dans une collection singleton si la séquence est vide.

C#
public static System.Collections.Generic.IEnumerable<TSource> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
C#
public static System.Collections.Generic.IEnumerable<TSource?> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
IEnumerable<TSource>

Séquence pour laquelle retourner une valeur par défaut si elle est vide.

Retours

IEnumerable<TSource>

Objet IEnumerable<T> qui contient la valeur par défaut du type TSource si source est vide ; sinon, source.

Exceptions

source est null.

Exemples

Les exemples de code suivants montrent comment utiliser DefaultIfEmpty<TSource>(IEnumerable<TSource>) pour fournir une valeur par défaut si la séquence source est vide.

Cet exemple utilise une séquence non vide.

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

public static void DefaultIfEmptyEx1()
{
    List<Pet> pets =
        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 pets.DefaultIfEmpty())
    {
        Console.WriteLine(pet.Name);
    }
}

/*
 This code produces the following output:

 Barley
 Boots
 Whiskers
*/

Cet exemple utilise une séquence vide.

C#
List<int> numbers = new List<int>();

foreach (int number in numbers.DefaultIfEmpty())
{
    Console.WriteLine(number);
}

/*
 This code produces the following output:

 0
*/

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré en appelant directement sa méthode GetEnumerator ou en utilisant foreach en C# ou For Each en Visual Basic.

La valeur par défaut pour les types référence et Nullable est null.

Cette méthode peut être utilisée pour produire une jointure externe gauche lorsqu’elle est combinée avec la méthode GroupJoin.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.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 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Source:
DefaultIfEmpty.cs
Source:
DefaultIfEmpty.cs
Source:
DefaultIfEmpty.cs

Retourne les éléments de la séquence spécifiée ou la valeur spécifiée dans une collection singleton si la séquence est vide.

C#
public static System.Collections.Generic.IEnumerable<TSource> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
IEnumerable<TSource>

Séquence pour laquelle retourner la valeur spécifiée s’il est vide.

defaultValue
TSource

Valeur à retourner si la séquence est vide.

Retours

IEnumerable<TSource>

IEnumerable<T> qui contient defaultValue si source est vide ; sinon, source.

Exemples

L’exemple de code suivant montre comment utiliser la méthode DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) et spécifier une valeur par défaut. La première séquence n’est pas vide et la deuxième séquence est vide.

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

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré en appelant directement sa méthode GetEnumerator ou en utilisant foreach en C# ou For Each en Visual Basic.

Cette méthode peut être utilisée pour produire une jointure externe gauche lorsqu’elle est combinée avec la méthode GroupJoin.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.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 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0