有干净的方法吗?
Expression<Func<int, string>> exTyped = i => "My int = " + i;
LambdaExpression lambda = exTyped;
//later on:
object input = 4;
object result = ExecuteLambdaSomeHow(lambda, input);
//result should be "My int = 4"
Run Code Online (Sandbox Code Playgroud)
这适用于不同类型.
我想做一些大致相当于下面代码示例的事情.我想生成并提供数据流,而不必在任何时候将整个数据集都放在内存中.
看起来我需要一些在其构造函数中接受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)