Enumerable.Empty<TResult> 方法


傳回具有指定之型別引數的空白 IEnumerable<T>Returns an empty IEnumerable<T> that has the specified type argument.

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)



型別,用來指派給傳回之泛型 IEnumerable<T> 的型別參數。The type to assign to the type parameter of the returned generic IEnumerable<T>.



其型別引數為 TResult 的空白 IEnumerable<T>An empty IEnumerable<T> whose type argument is TResult.


下列程式碼範例示範如何使用 Empty<TResult>() 來產生空白 IEnumerable<T>The following code example demonstrates how to use Empty<TResult>() to generate an empty IEnumerable<T>.

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

下列程式碼範例示範方法的可能應用 Empty<TResult>()The following code example demonstrates a possible application of the Empty<TResult>() method. Aggregate方法會套用至字串陣列的集合。The Aggregate method is applied to a collection of string arrays. 只有當陣列包含四個以上的專案時,才會將集合中每個陣列的元素新增至結果 IEnumerable<T>The elements of each array in the collection are added to the resulting IEnumerable<T> only if that array contains four or more elements. Empty 用來產生的種子值 Aggregate ,因為如果集合中沒有任何陣列有四個以上的元素,則只會傳回空的序列。Empty is used to generate the seed value for Aggregate because if no array in the collection has four or more elements, only the empty sequence is returned.

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 =
    (current, next) => next.Length > 3 ? current.Union(next) : current);

foreach (string name in allNames)

 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

' Display the output.

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


方法會快取 Empty<TResult>() 類型的空序列 TResultThe Empty<TResult>() method caches an empty sequence of type TResult. 列舉傳回的物件時,它不會產生任何元素。When the object it returns is enumerated, it yields no elements.

在某些情況下,這個方法非常適合用來將空的序列傳遞給採用的使用者定義方法 IEnumerable<T>In some cases, this method is useful for passing an empty sequence to a user-defined method that takes an IEnumerable<T>. 它也可以用來為方法(例如)產生中性元素 UnionIt can also be used to generate a neutral element for methods such as Union. 如需這種用法的範例,請參閱範例一節 Empty<TResult>()See the Example section for an example of this use of Empty<TResult>().