Enumerable.Empty<TResult> 方法
定义
返回具有指定类型参数的空 IEnumerable<T>。Returns an empty IEnumerable<T> that has the specified type argument.
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)
类型参数
- TResult
分配给返回的泛型 IEnumerable<T> 的类型参数的类型。The type to assign to the type parameter of the returned generic IEnumerable<T>.
返回
- IEnumerable<TResult>
一个空 IEnumerable<T>,其类型参数为 TResult。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 =
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
注解
Empty<TResult>()方法缓存类型为的空序列 TResult 。The 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>. 它还可用于为等方法生成非特定元素 Union 。It 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>().