Recibo un Stream y necesito pasar un IEnumerable a otro método.Convertir flujo en IEnumerable. Si es posible al "mantener la pereza"
public static void streamPairSwitchCipher(Stream someStream)
{
...
someStreamAsIEnumerable = ...
IEnumerable returned = anotherMethodWhichWantsAnIEnumerable(someStreamAsIEnumerable);
...
}
Una forma es leer toda la corriente, convertirlo en una matriz de bytes y pasarlo en, como matriz implementa IEnumerable. Pero sería mucho mejor si pudiera pasar en ella de tal manera que yo no tengo que leer toda la corriente antes de pasarlo en.
public static IEnumerable<T> anotherMethodWhichWantsAnIEnumerable<T>(IEnumerable<T> p) {
... // Something uninteresting
}
¿Qué se espera para enumerar? ¿Está * realmente * queriendo enumerar cada byte de la secuencia? –
Puede crear un contenedor, envolviendo el flujo, proporcionando el soporte de IEnumerable, implementado de la forma que desee. –
@Jon Skeet: planeo enumerar los bytes de un archivo y dejar que 'anotherMethodWhichWantsAnIEnumerable' que ya está implementado haga su magia. – Deleted