我想做一些大致相当于下面代码示例的事情.我想生成并提供数据流,而不必在任何时候将整个数据集都放在内存中.
看起来我需要一些在其构造函数中接受IEnumerable<string>(或IEnumerable<byte>)的Stream实现.在内部,此Stream只会在读取Stream或根据需要时移动IEnumerable.但我不知道这样的任何Stream实现.
我是在正确的轨道上吗?你知道怎么办这样的事吗?
public FileStreamResult GetResult()
{
IEnumerable<string> data = GetDataForStream();
Stream dataStream = ToStringStream(Encoding.UTF8, data);
return File(dataStream, "text/plain", "Result");
}
private IEnumerable<string> GetDataForStream()
{
StringBuilder sb;
for (int i = 0; i < 10000; i++)
{
yield return i.ToString();
yield return "\r\n";
}
}
private Stream ToStringStream(Encoding encoding, IEnumerable<string> data)
{
// I have to write my own implementation of stream?
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)