protected ResultOperatorExpressionNodeBase( MethodCallExpressionParseInfo parseInfo, LambdaExpression optionalPredicate, LambdaExpression optionalSelector) : base(parseInfo) { if (optionalPredicate != null && optionalPredicate.Parameters.Count != 1) { throw new ArgumentException("OptionalPredicate must have exactly one parameter.", "optionalPredicate"); } if (optionalSelector != null && optionalSelector.Parameters.Count != 1) { throw new ArgumentException("OptionalSelector must have exactly one parameter.", "optionalSelector"); } if (optionalPredicate != null) { Source = new WhereExpressionNode(parseInfo, optionalPredicate); } if (optionalSelector != null) { var newParseInfo = new MethodCallExpressionParseInfo(parseInfo.AssociatedIdentifier, Source, parseInfo.ParsedExpression); Source = new SelectExpressionNode(newParseInfo, optionalSelector); } ParsedExpression = parseInfo.ParsedExpression; }
protected ResultOperatorExpressionNodeBase ( MethodCallExpressionParseInfo parseInfo, LambdaExpression optionalPredicate, LambdaExpression optionalSelector) : base (parseInfo) { if (optionalPredicate != null && optionalPredicate.Parameters.Count != 1) throw new ArgumentException ("OptionalPredicate must have exactly one parameter.", "optionalPredicate"); if (optionalSelector != null && optionalSelector.Parameters.Count != 1) throw new ArgumentException ("OptionalSelector must have exactly one parameter.", "optionalSelector"); if (optionalPredicate != null) Source = new WhereExpressionNode (parseInfo, optionalPredicate); if (optionalSelector != null) { var newParseInfo = new MethodCallExpressionParseInfo (parseInfo.AssociatedIdentifier, Source, parseInfo.ParsedExpression); Source = new SelectExpressionNode (newParseInfo, optionalSelector); } ParsedExpression = parseInfo.ParsedExpression; }