# InsertArrayElementAtIndex(int)

> Insert an new element at the specified index in the array.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public void InsertArrayElementAtIndex(int index)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;

### Remarks

The value of the inserted element is undefined and should be explicitly set after calling this function.

Additional Resources: [SerializedProperty.isArray](/engine/6000.7/script-reference/unityeditor/serializedproperty/isarray.md), [SerializedProperty.arraySize](/engine/6000.7/script-reference/unityeditor/serializedproperty/arraysize.md), [SerializedProperty.GetArrayElementAtIndex](/engine/6000.7/script-reference/unityeditor/serializedproperty/getarrayelementatindex.md).

### Examples

```csharp
using UnityEditor;
using UnityEngine;

public class InsertArrayElementAtIndexExample : ScriptableObject
{
    public string[] m_Data;

    [MenuItem("Example/SerializedProperty/InsertArrayElementAtIndex Example")]
    static void MenuCallback()
    {
        InsertArrayElementAtIndexExample obj = ScriptableObject.CreateInstance<InsertArrayElementAtIndexExample>();
        obj.m_Data = new string[] { "The", "cat" };

        SerializedObject serializedObject = new SerializedObject(obj);
        SerializedProperty arrayProperty = serializedObject.FindProperty("m_Data");

        arrayProperty.InsertArrayElementAtIndex(1);
        arrayProperty.GetArrayElementAtIndex(1).stringValue = "big";

        arrayProperty.InsertArrayElementAtIndex(arrayProperty.arraySize);
        arrayProperty.GetArrayElementAtIndex(arrayProperty.arraySize - 1).stringValue = "jumped.";

        serializedObject.ApplyModifiedProperties();

        // Outputs "The big cat jumped."
        Debug.Log("Final array contents: " + string.Join(" ", obj.m_Data));
    }
}
```
