Compartir vía


Enumerable.Empty<TResult> Método

Definición

Devuelve una interfaz IEnumerable<T> vacía que tiene el argumento de tipo especificado.

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)

Parámetros de tipo

TResult

Tipo que se va a asignar al parámetro de tipo de la interfaz IEnumerable<T> genérica devuelta.

Devoluciones

IEnumerable<TResult>

Una interfaz IEnumerable<T> vacía cuyo argumento de tipo es TResult.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Empty<TResult>() para generar un objeto vacío IEnumerable<T>.

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

En el ejemplo de código siguiente se muestra una posible aplicación del Empty<TResult>() método . El Aggregate método se aplica a una colección de matrices de cadenas. Los elementos de cada matriz de la colección se agregan al resultado IEnumerable<T> solo si esa matriz contiene cuatro o más elementos. Empty se usa para generar el valor de inicialización para Aggregate porque si ninguna matriz de la colección tiene cuatro o más elementos, solo se devuelve la secuencia vacía.

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

Comentarios

El Empty<TResult>() método almacena en caché una secuencia vacía de tipo TResult. Cuando se enumera el objeto que devuelve, no produce ningún elemento.

En algunos casos, este método es útil para pasar una secuencia vacía a un método definido por el usuario que toma .IEnumerable<T> También se puede usar para generar un elemento neutro para métodos como Union. Consulte la sección Ejemplo para obtener un ejemplo de este uso de Empty<TResult>().

Se aplica a