// Edit array private T[] EditArray <T>(T[] array, Action <List <T> > edit) { // Generate list List <T> list = new List <T>(); // Add array to list if (array != null) { list.AddRange(array); } // Call edit action edit(list); // Set to array T[] result = list.ToArray(); // Refresh foldout value WitEditorUI.SetFoldoutValue(result, WitEditorUI.GetFoldoutValue(array)); // Return array return(result); }