Действительно, кодеры 2.0, склонные к интенсивному использованию перечислений, имеют в своем наборе стандартный элемент:
public static IEnumerable<T> EmptyEnum<T>()
{
yield break;
}
До появления System.Linq.Enumerable.Empty (). Очень полезно во многих случаях, довольно часто именно потому, что не возвращает ноль. Например, если GetIntEnum () может возвращать некоторый тип IEnumerable, но также может возвращать ноль, то GetIntEnum() ?? Enumerable.Empty<T>()
дает нам что-то, что всегда безопасно перечислять (при условии, что это желаемый результат в случае нулевых результатов). *