Lire en anglais

Partager via


Enumerable.SingleOrDefault Méthode

Définition

Retourne un élément spécifique unique d'une séquence, ou une valeur par défaut si cet élément est introuvable.

Surcharges

SingleOrDefault<TSource>(IEnumerable<TSource>)

Retourne l'élément unique d'une séquence ou une valeur par défaut. Cette méthode lève une exception si cette séquence contient plusieurs éléments.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Retourne l’élément unique d’une séquence ou une valeur par défaut si cette séquence ne contient pas d’élément respectant cette condition. Cette méthode lève une exception si cette séquence contient plusieurs éléments satisfaisant à cette condition.

SingleOrDefault<TSource>(IEnumerable<TSource>, TSource)

Retourne le seul élément d’une séquence, ou une valeur par défaut spécifiée si la séquence est vide ; cette méthode lève une exception s’il existe plusieurs éléments dans la séquence.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Retourne le seul élément d’une séquence qui satisfait à une condition spécifiée, ou une valeur par défaut spécifiée s’il n’existe aucun élément de ce type ; cette méthode lève une exception si plusieurs éléments satisfont à la condition.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Retourne l'élément unique d'une séquence ou une valeur par défaut. Cette méthode lève une exception si cette séquence contient plusieurs éléments.

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

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> duquel retourner le seul élément.

Retours

TSource

L'élément unique de la séquence d'entrée ou default (TSource) si la séquence ne contient aucun élément.

Exceptions

source a la valeur null.

La séquence d'entrée contient plusieurs éléments.

Exemples

L’exemple de code suivant montre comment utiliser SingleOrDefault<TSource>(IEnumerable<TSource>) pour sélectionner le seul élément d’un tableau.

C#
string[] fruits1 = { "orange" };

string fruit1 = fruits1.SingleOrDefault();

Console.WriteLine(fruit1);

/*
 This code produces the following output:

 orange
*/

L’exemple de code suivant montre que SingleOrDefault<TSource>(IEnumerable<TSource>) retourne une valeur par défaut lorsque la séquence est vide.

C#
string[] fruits2 = { };

string fruit2 = fruits2.SingleOrDefault();

Console.WriteLine(
    String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);

/*
 This code produces the following output:

 No such string!
*/

Parfois, la valeur de default(TSource) n’est pas la valeur par défaut que vous souhaitez utiliser si la collection ne contient aucun élément. Au lieu de vérifier le résultat de la valeur par défaut indésirable et de la modifier si nécessaire, vous pouvez utiliser la DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) méthode pour spécifier la valeur par défaut que vous souhaitez utiliser si la collection est vide. Ensuite, appelez Single<TSource>(IEnumerable<TSource>) pour obtenir l’élément . L’exemple de code suivant utilise les deux techniques pour obtenir une valeur par défaut de 1 si une collection de numéros de page est vide. Étant donné que la valeur par défaut d’un entier est 0, ce qui n’est généralement pas un numéro de page valide, la valeur par défaut doit être spécifiée sous la forme 1 à la place. La première variable de résultat est vérifiée pour la valeur par défaut indésirable une fois l’exécution de la requête terminée. La deuxième variable de résultat est obtenue en utilisant DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) pour spécifier une valeur par défaut de 1.

C#
int[] pageNumbers = { };

// Setting the default value to 1 after the query.
int pageNumber1 = pageNumbers.SingleOrDefault();
if (pageNumber1 == 0)
{
    pageNumber1 = 1;
}
Console.WriteLine("The value of the pageNumber1 variable is {0}", pageNumber1);

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int pageNumber2 = pageNumbers.DefaultIfEmpty(1).Single();
Console.WriteLine("The value of the pageNumber2 variable is {0}", pageNumber2);

/*
 This code produces the following output:

 The value of the pageNumber1 variable is 1
 The value of the pageNumber2 variable is 1
*/

Remarques

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

La SingleOrDefault méthode ne permet pas de spécifier une valeur par défaut. Si vous souhaitez spécifier une valeur par défaut autre que default(TSource), utilisez la DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) méthode comme décrit dans la section Exemple.

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

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Retourne l’élément unique d’une séquence ou une valeur par défaut si cette séquence ne contient pas d’élément respectant cette condition. Cette méthode lève une exception si cette séquence contient plusieurs éléments satisfaisant à cette condition.

C#
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
C#
public static TSource? SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> duquel retourner un seul élément.

predicate
Func<TSource,Boolean>

Fonction permettant de tester un élément pour une condition.

Retours

TSource

Seul élément de la séquence d'entrée à satisfaire à la condition ou default (TSource) si cet élément n'est pas trouvé.

Exceptions

source ou predicate est null.

Plusieurs éléments satisfont à la condition dans predicate.

Exemples

L’exemple de code suivant montre comment utiliser SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour sélectionner le seul élément d’un tableau qui remplit une condition.

C#
string[] fruits = { "apple", "banana", "mango",
                      "orange", "passionfruit", "grape" };

string fruit1 = fruits.SingleOrDefault(fruit => fruit.Length > 10);

Console.WriteLine(fruit1);

/*
 This code produces the following output:

 passionfruit
*/

L’exemple de code suivant montre que SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) retourne une valeur par défaut lorsque la séquence ne contient aucun élément qui satisfait à la condition.

C#
string fruit2 =
    fruits.SingleOrDefault(fruit => fruit.Length > 15);

Console.WriteLine(
    String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);

/*
 This code produces the following output:

 No such string!
*/

Remarques

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

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

SingleOrDefault<TSource>(IEnumerable<TSource>, TSource)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Retourne le seul élément d’une séquence, ou une valeur par défaut spécifiée si la séquence est vide ; cette méthode lève une exception s’il existe plusieurs éléments dans la séquence.

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

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> duquel retourner le seul élément.

defaultValue
TSource

Valeur par défaut à retourner si la séquence est vide.

Retours

TSource

Élément unique de la séquence d’entrée, ou defaultValue si la séquence ne contient aucun élément.

Exceptions

source a la valeur null.

La séquence d'entrée contient plusieurs éléments.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET 6, 7, 8, 9

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Source:
Single.cs
Source:
Single.cs
Source:
Single.cs

Retourne le seul élément d’une séquence qui satisfait à une condition spécifiée, ou une valeur par défaut spécifiée s’il n’existe aucun élément de ce type ; cette méthode lève une exception si plusieurs éléments satisfont à la condition.

C#
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> duquel retourner un seul élément.

predicate
Func<TSource,Boolean>

Fonction permettant de tester un élément pour une condition.

defaultValue
TSource

Valeur par défaut à retourner si la séquence est vide.

Retours

TSource

Élément unique de la séquence d’entrée qui satisfait à la condition, ou defaultValue si aucun élément de ce type n’est trouvé.

Exceptions

source ou predicate est null.

Plusieurs éléments satisfont à la condition dans predicate.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET 6, 7, 8, 9