public void OptimizeForSave(EquationRoot root) { mapping.Clear(); List <TextFormat> newList = new List <TextFormat>(); HashSet <int> usedOnes = root.GetUsedTextFormats(); foreach (int i in usedOnes) { TextFormat tf = formattingList[i]; tf.Index = newList.Count; newList.Add(tf); mapping.Add(i, tf.Index); } root.ResetTextFormats(mapping); formattingListBeforeSave = formattingList; formattingList = newList; }