Freigeben über


Enumerable.Empty<TResult> Methode

Definition

Gibt ein leeres IEnumerable<T> zurück, das über das angegebene Typargument verfügt

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> zugewiesen werden soll.

Gibt zurück

IEnumerable<TResult>

Ein leeres IEnumerable<T>, dessen Typargument TResult ist

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Empty<TResult>() leeres IEnumerable<T>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 jedes Arrays in der Auflistung werden dem resultierenden IEnumerable<T> nur hinzugefügt, wenn dieses Array vier oder mehr Elemente enthält. Empty wird verwendet, um den Seedwert für Aggregate zu generieren, da nur die leere Sequenz zurückgegeben wird, wenn kein Array in der Auflistung über vier oder mehr Elemente verfügt.

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 vom Typ TResultzwischen. Wenn das zurückgegebene Objekt aufgezählt wird, ergibt es keine Elemente.

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

Gilt für: