예제 #1
0
        public void CustomDynamicIterator()
        {
            // Creating some example lambda to run our expression on.
            var hl     = @"foo
   howdy1:XXXXX
   howdy2:XXX
   howdy3:XXXXX
";
            var lambda = new Parser(hl).Lambda();

            // Creating an expression, and evaluating it on above lambda.
            Iterator.AddDynamicIterator('%', (iteratorValue) => {
                var no = int.Parse(iteratorValue.Substring(1));
                return((identity, input) => {
                    return input.Where(x => x.Get <string>()?.Length == no);
                });
            });
            var x      = new Expression("../**/%3");
            var result = x.Evaluate(lambda);

            Assert.Single(result);
            Assert.Equal("howdy2", result.First().Name);
        }