# DuplicateCommand()

> Duplicates the array element referenced by the SerializedProperty.

## Definition

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

```csharp
public bool DuplicateCommand()
```

### Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Remarks

Used to insert another element in the array, initialized to the same contents as the SerializedProperty. Additional Resources: [SerializedProperty.InsertArrayElementAtIndex](/engine/6000.5/script-reference/unityeditor/serializedproperty/insertarrayelementatindex.md)

### Examples

```csharp
using UnityEditor;
using UnityEngine;

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

    [MenuItem("Example/SerializedProperty/DuplicateCommand Example")]
    static void MenuCallback()
    {
        SerializedPropertyDuplicateCommandExample obj = ScriptableObject.CreateInstance<SerializedPropertyDuplicateCommandExample>();
        obj.m_Data = new string[] { "A", "B", "C" };

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

        SerializedProperty element1 = arrayProperty.GetArrayElementAtIndex(1);
        element1.DuplicateCommand();
        element1.DuplicateCommand();

        // Last entry has been shifted from index 2 to index 4
        SerializedProperty lastElement = arrayProperty.GetArrayElementAtIndex(4);
        lastElement.DuplicateCommand();

        serializedObject.ApplyModifiedProperties();

        // Outputs "A B B B C C"
        Debug.Log("Final array contents: " + string.Join(" ", obj.m_Data));
    }
}
```
