// 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);
        }