Partager via


Enumerable.Empty<TResult> Méthode

Définition

Retourne un IEnumerable<T> vide qui a l'argument de type spécifié.

public:
generic <typename TResult>
 static System::Collections::Generic::IEnumerable<TResult> ^ Empty();
public static System.Collections.Generic.IEnumerable<TResult> Empty<TResult> ();
static member Empty : unit -> seq<'Result>
Public Function Empty(Of TResult) () As IEnumerable(Of TResult)

Paramètres de type

TResult

Type à assigner au paramètre de type du IEnumerable<T> générique retourné.

Retours

IEnumerable<TResult>

IEnumerable<T> vide dont l'argument de type est TResult.

Exemples

L’exemple de code suivant montre comment utiliser Empty<TResult>() pour générer un vide IEnumerable<T>.

IEnumerable<decimal> empty = Enumerable.Empty<decimal>();
' Create an empty sequence.
Dim empty As IEnumerable(Of Decimal) = Enumerable.Empty(Of Decimal)()

L’exemple de code suivant illustre une application possible de la Empty<TResult>() méthode. La Aggregate méthode est appliquée à une collection de tableaux de chaînes. Les éléments de chaque tableau de la collection sont ajoutés au résultat IEnumerable<T> uniquement si ce tableau contient quatre éléments ou plus. Empty est utilisé pour générer la valeur initiale pour Aggregate , car si aucun tableau de la collection n’a quatre éléments ou plus, seule la séquence vide est retournée.

string[] names1 = { "Hartono, Tommy" };
string[] names2 = { "Adams, Terry", "Andersen, Henriette Thaulow",
                      "Hedlund, Magnus", "Ito, Shu" };
string[] names3 = { "Solanki, Ajay", "Hoeing, Helge",
                      "Andersen, Henriette Thaulow",
                      "Potra, Cristina", "Iallo, Lucio" };

List<string[]> namesList =
    new List<string[]> { names1, names2, names3 };

// Only include arrays that have four or more elements
IEnumerable<string> allNames =
    namesList.Aggregate(Enumerable.Empty<string>(),
    (current, next) => next.Length > 3 ? current.Union(next) : current);

foreach (string name in allNames)
{
    Console.WriteLine(name);
}

/*
 This code produces the following output:

 Adams, Terry
 Andersen, Henriette Thaulow
 Hedlund, Magnus
 Ito, Shu
 Solanki, Ajay
 Hoeing, Helge
 Potra, Cristina
 Iallo, Lucio
*/
' Create three string arrays.
Dim names1() As String =
{"Hartono, Tommy"}
Dim names2() As String =
{"Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu"}
Dim names3() As String =
{"Solanki, Ajay", "Hoeing, Helge", "Andersen, Henriette Thaulow", "Potra, Cristina", "Iallo, Lucio"}

' Create a List that contains 3 elements, where
' each element is an array of strings.
Dim namesList As New List(Of String())(New String()() {names1, names2, names3})

' Select arrays that have four or more elements and union
' them into one collection, using Empty() to generate the
' empty collection for the seed value.
Dim allNames As IEnumerable(Of String) =
namesList.Aggregate(Enumerable.Empty(Of String)(),
                    Function(current, nextOne) _
                        IIf(nextOne.Length > 3, current.Union(nextOne), current))

Dim output As New System.Text.StringBuilder
For Each name As String In allNames
    output.AppendLine(name)
Next

' Display the output.
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' Adams, Terry
' Andersen, Henriette Thaulow
' Hedlund, Magnus
' Ito, Shu
' Solanki, Ajay
' Hoeing, Helge
' Potra, Cristina
' Iallo, Lucio

Remarques

La Empty<TResult>() méthode met en cache une séquence vide de type TResult. Lorsque l’objet qu’il retourne est énuméré, il ne génère aucun élément.

Dans certains cas, cette méthode est utile pour passer une séquence vide à une méthode définie par l’utilisateur qui prend un IEnumerable<T>. Il peut également être utilisé pour générer un élément neutre pour des méthodes telles que Union. Consultez la section Exemple pour obtenir un exemple d’utilisation de Empty<TResult>().

S’applique à