如何用 ParallelEnumerable.AsParallel 包装 NewArrayExpression ?
例如我有代表下一个代码的表达式:
var data = new int {1, 2, 3, 4, 5};
我想要得到的结果:
var data = new int {1, 2, 3, 4, 5}.AsParallel();
我尝试使用 ExpressionVisitor 和 VisitNewArray 方法:
protected override Expression VisitNewArray(NewArrayExpression node)
{
var source = Expression.Parameter(typeof(IEnumerable<>).MakeGenericType(typeof(MethodCallExpression)), "source");
var asParallel =
Expression.Call(
typeof(ParallelEnumerable),
nameof(ParallelEnumerable.AsParallel),
new[] { typeof(ParallelQuery<MethodCallExpression>) },
source
);
return ***???***
}
但不知道如何正确“包装” node.Expressions这个Expression.Call
感谢您的任何建议!