De hecho, 2.0 codificadores que se apoyaban hacia un uso intensivo de las enumeraciones tendrían una pieza estándar en sus kits de herramientas de:
public static IEnumerable<T> EmptyEnum<T>()
{
yield break;
}
Antes System.Linq.Enumerable.Empty() llegó. Muy útil en muchos casos, muy a menudo precisamente porque no devuelve nulo. Por ejemplo, si GetIntEnum() puede devolver algún tipo de tipo IEnumerable pero también puede devolver nulo, entonces GetIntEnum() ?? Enumerable.Empty<T>()
nos da algo que siempre es seguro enumerar (suponiendo que ese es el comportamiento deseado en el caso de resultados nulos).