Beispiel #1
0
        protected override Expression AddItemExpression(IItemFieldContext context)
        {
            LabelTarget labelBreak = Expression.Label("_break");

            return(Expression.Block(
                       Expression.Loop(
                           Expression.IfThenElse(
                               Expression.LessThan(
                                   Expression.Property(context.ParseFieldParams.Result, _listCount),
                                   context.Key),

                               Expression.Call(context.ParseFieldParams.Result, _listAdd, Expression.Default(ItemType)),
                               Expression.Break(labelBreak)),

                           labelBreak),

                       Expression.Call(context.ParseFieldParams.Result, _listAdd, context.Item)));
        }
Beispiel #2
0
 protected abstract Expression AddItemExpression(IItemFieldContext context);
 protected override Expression AddItemExpression(IItemFieldContext context) => Expression.Call(context.ParseFieldParams.Result, _dictAdd, context.Key, context.Item);