public void CurrentSelectionToIterableGroup() { if (MarkedControls.Count == 0) { return; } var min = _stepControls.Count; var max = -1; for (var i = 0; i < MarkedControls.Count; ++i) { if (MarkedControls[i].Index < min) { min = MarkedControls[i].Index; } if (MarkedControls[i].Index > max) { max = MarkedControls[i].Index; } MarkedControls[i] .Step.MakeIterable(ArrayExpressionEditor.Items.Count > 1 ? ArrayExpressionEditor.Len : 2); MarkedControls[i].RespectIterable(); } if (max + 1 == StepManager.Steps.Count) { StepManager.Insert(new EmptyStep(), max + 1, false, null, false, true); } StepManager.IterableGroups.Add(new IterableStepGroup(ArrayExpressionEditor.Items.Count > 1 ? string.Format("len({0})", ArrayExpressionEditor.Items[0].Expr.FullName) : "2") { StartIndex = min, Length = max - min + 1 }); ClearMarked(); ConstructList(); StepManager.RefreshToCurrentStep(); }