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))); }
protected abstract Expression AddItemExpression(IItemFieldContext context);
protected override Expression AddItemExpression(IItemFieldContext context) => Expression.Call(context.ParseFieldParams.Result, _dictAdd, context.Key, context.Item);