Enumerable.Empty<TResult> Methode

Definition

Gibt einen leeren IEnumerable<T> Wert zurück, der das angegebene Typargument aufweist.

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)

Typparameter

TResult

Der Typ, der dem Typparameter des zurückgegebenen generischen IEnumerable<T>Typs zugewiesen werden soll.

Gibt zurück

IEnumerable<TResult>

Ein leeres IEnumerable<T> Argument, dessen Typargument lautet TResult.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Empty<TResult>() leeres IEnumerable<T>Objekt generiert wird.

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

Im folgenden Codebeispiel wird eine mögliche Anwendung der Empty<TResult>() Methode veranschaulicht. Die Aggregate Methode wird auf eine Auflistung von Zeichenfolgenarrays angewendet. Die Elemente der einzelnen Arrays in der Auflistung werden nur hinzugefügt IEnumerable<T> , wenn dieses Array vier oder mehr Elemente enthält. Empty wird verwendet, um den Startwert Aggregate zu generieren, da, wenn keine Matrix in der Auflistung vier oder mehr Elemente enthält, nur die leere Sequenz zurückgegeben wird.

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

Hinweise

Die Empty<TResult>() Methode speichert eine leere Sequenz des Typs TResultzwischen. Wenn das zurückgegebene Objekt aufgezählt wird, werden keine Elemente zurückgegeben.

In einigen Fällen ist diese Methode nützlich, um eine leere Sequenz an eine benutzerdefinierte Methode zu übergeben, die eine IEnumerable<T>. Es kann auch verwendet werden, um ein neutrales Element für Methoden wie z Union. B. . Ein Beispiel für diese Verwendung Empty<TResult>()finden Sie im Abschnitt "Beispiel".

Gilt für: