# Add

> Adds a new item. If the item is already present in the collection, this method should throw, but currently does not! Instead, it returns false without replacing said item.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Collections](/engine/6000.7/script-reference/unity/collections.md)
* **Assembly:** UnityEngine.ManagedKernelModule

## Add(T)

Adds a new item. If the item is already present in the collection, this method **should** throw, but currently does not! Instead, it returns false without replacing said item.

```csharp
public bool Add(T item)
```

### Parameters

**** (T): The value to add.

### Returns

| Type                                                          | Description                               |
| ------------------------------------------------------------- | ----------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | True if the value is not already present. |

### Remarks

Prefer [NativeParallelHashSet\<T>.ParallelWriter.TryAdd](/engine/6000.7/script-reference/unity/collections/nativeparallelhashset1/parallelwriter/tryadd.md) if your intent is to allow graceful failure, as this API will eventually become more strict (and begin to throw).

## Add(T, int)

Adds a new item. If the item is already present in the collection, this method **should** throw, but currently does not! Instead, it returns false without replacing said item.

```csharp
public bool Add(T item, int threadIndexOverride)
```

### Parameters

**** (T): The value to add.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The thread index which must be set by a field from a job struct with the NativeSetThreadIndexAttribute attribute.

### Returns

| Type                                                          | Description                               |
| ------------------------------------------------------------- | ----------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | True if the value is not already present. |

### Remarks

Prefer [NativeParallelHashSet\<T>.ParallelWriter.TryAdd](/engine/6000.7/script-reference/unity/collections/nativeparallelhashset1/parallelwriter/tryadd.md) if your intent is to allow graceful failure, as this API will eventually become more strict (and begin to throw).
