Enumerable.DefaultIfEmpty Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ DefaultIfEmpty(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static System.Collections.Generic.IEnumerable<TSource> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
public static System.Collections.Generic.IEnumerable<TSource?> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
static member DefaultIfEmpty : seq<'Source> -> seq<'Source>
<Extension()>
Public Function DefaultIfEmpty(Of TSource) (source As IEnumerable(Of TSource)) As IEnumerable(Of TSource)
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
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.
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
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub DefaultIfEmptyEx1()
' Create a List of Pet objects.
Dim pets As New List(Of Pet)(New Pet() _
{New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}})
Dim output As New System.Text.StringBuilder
' Iterate through the items in the List, calling DefaultIfEmpty().
For Each pet As Pet In pets.DefaultIfEmpty()
output.AppendLine(pet.Name)
Next
' Display the output.
Console.WriteLine(output.ToString())
End Sub
' This code produces the following output:
'
' Barley
' Boots
' Whiskers
Cet exemple utilise une séquence vide.
List<int> numbers = new List<int>();
foreach (int number in numbers.DefaultIfEmpty())
{
Console.WriteLine(number);
}
/*
This code produces the following output:
0
*/
' Create an empty List.
Dim numbers As New List(Of Integer)()
Dim output As New System.Text.StringBuilder
' Iterate through the items in the List, calling DefaultIfEmpty().
For Each number As Integer In numbers.DefaultIfEmpty()
output.AppendLine(number)
Next
' Display the output.
Console.WriteLine(output.ToString())
' 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
- opérations de jointure (C#)
- opérations de jointure (Visual Basic)
S’applique à
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ DefaultIfEmpty(System::Collections::Generic::IEnumerable<TSource> ^ source, TSource defaultValue);
public static System.Collections.Generic.IEnumerable<TSource> DefaultIfEmpty<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);
static member DefaultIfEmpty : seq<'Source> * 'Source -> seq<'Source>
<Extension()>
Public Function DefaultIfEmpty(Of TSource) (source As IEnumerable(Of TSource), defaultValue As TSource) As IEnumerable(Of TSource)
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<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.
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
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub DefaultIfEmptyEx2()
' Create a Pet object to use as the default value.
Dim defaultPet As New Pet With {.Name = "Default Pet", .Age = 0}
' Create a List of Pet objects.
Dim pets1 As New List(Of Pet)(New Pet() _
{New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}})
Dim output1 As New System.Text.StringBuilder
' Enumerate the items in the list, calling DefaultIfEmpty()
' with a default value.
For Each pet As Pet In pets1.DefaultIfEmpty(defaultPet)
output1.AppendLine("Name: " & pet.Name)
Next
' Display the output.
Console.WriteLine(output1.ToString())
' Create an empty List.
Dim pets2 As New List(Of Pet)
Dim output2 As New System.Text.StringBuilder
' Enumerate the items in the list, calling DefaultIfEmpty()
' with a default value.
For Each pet As Pet In pets2.DefaultIfEmpty(defaultPet)
output2.AppendLine("Name: " & pet.Name)
Next
' Display the output.
Console.WriteLine(output2.ToString())
End Sub
' 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
- opérations de jointure (C#)
- opérations de jointure (Visual Basic)