2010-08-06 12 views

risposta

16

Un oggetto IEnumerable valido che non produce valori quando si scorre su di esso.

Basti pensare: è possibile memorizzare il generatore IEnumerable in una variabile, il codice stesso viene eseguito solo quando si esegue effettivamente un'iterazione dei risultati. Come hai potuto eseguire il codice se avevi null? O come hai fatto a a conoscere la funzione non produce nulla senza eseguirla.

8

Quest'ultimo - si sarà in grado di GetEnumerator() non importa cosa, non ci saranno solo elementi per enumerare. Questo è equivalente a Enumerable.Empty<T>.

1

Infatti, 2.0 programmatori che si sporse verso un uso pesante di enumerazioni avrebbero un pezzo standard nella loro toolkit di:

public static IEnumerable<T> EmptyEnum<T>() 
{ 
    yield break; 
} 

Prima System.Linq.Enumerable.Empty() è arrivato. Molto utile in molti casi, abbastanza spesso proprio perché non restituisce nulla. Ad esempio, se GetIntEnum() può restituire una sorta di tipo IEnumerable ma può anche restituire null, allora GetIntEnum() ?? Enumerable.Empty<T>() ci fornisce qualcosa su cui è sempre sicuro enumerare (assumendo che sia il comportamento desiderato nel caso di risultati nulli).

Problemi correlati