public override MList <S> GetValue(MappingContext <MList <S> > ctx) { MList <S> list = ctx.Value; int i = 0; foreach (MappingContext <S> itemCtx in GenerateItemContexts(ctx).OrderBy(mc => mc.Prefix.Substring(mc.Prefix.LastIndexOf("_") + 1).ToInt().Value)) { if (i < list.Count) { itemCtx.Value = list[i]; itemCtx.Value = ElementMapping(itemCtx); ctx.AddChild(itemCtx); } i++; } return(list); }