Прочитать на английском

Поделиться через


Enumerable.Empty<TResult> Метод

Определение

Возвращает пустую коллекцию IEnumerable<T> с указанным аргументом типа.

C#
public static System.Collections.Generic.IEnumerable<TResult> Empty<TResult> ();

Параметры типа

TResult

Тип, присваиваемый параметру типа возвращаемого универсального интерфейса IEnumerable<T>.

Возвращаемое значение

IEnumerable<TResult>

Пустая коллекция IEnumerable<T> с аргументом типа TResult.

Примеры

В следующем примере кода показано, как использовать Empty<TResult>() для создания пустого IEnumerable<T>объекта .

C#
IEnumerable<decimal> empty = Enumerable.Empty<decimal>();

В следующем примере кода показано возможное Empty<TResult>() применение метода . Метод Aggregate применяется к коллекции массивов строк. Элементы каждого массива в коллекции добавляются в результирующий IEnumerable<T> только в том случае, если этот массив содержит четыре или более элементов. Empty используется для создания начального значения для , Aggregate так как если ни один массив в коллекции не содержит четырех или более элементов, возвращается только пустая последовательность.

C#
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
*/

Комментарии

Метод Empty<TResult>() кэширует пустую последовательность типа TResult. При перечислении возвращаемого им объекта элементы не возвращаются.

В некоторых случаях этот метод удобен для передачи пустой последовательности в определяемый пользователем IEnumerable<T>метод, который принимает . Его также можно использовать для создания нейтрального элемента для таких методов, как Union. Пример использования Empty<TResult>()см. в разделе Пример.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0