# WithAbsent

> Add absent component types to the query.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Entities](/engine/7000.0/script-reference/unity/entities.md)
* **Assembly:** UnityEngine.EntitiesModule

## WithAbsent\<T>()

Add absent component types to the query.

```csharp
public EntityQueryBuilder WithAbsent<T1>()
```

### Returns

| Type                                                                                       | Description                                  |
| ------------------------------------------------------------------------------------------ | -------------------------------------------- |
| [EntityQueryBuilder](/engine/7000.0/script-reference/unity/entities/entityquerybuilder.md) | The builder object that invoked this method. |

### Remarks

To match the resulting query, an archetype must not have any of the absent components (whether they are disabled or enabled).

There are several ways to exclude components from a query:

* WithAbsent\\\<T\\>() matches all entities in chunks that do not have T at all.

* WithDisabled\\\<T\\>() matches chunks that must have T, but only matches entities where T is disabled.

* WithNone\\\<T\\>() matches both of the above cases: either the component isn't present at all, or it is present but disabled.

WithAbsent accepts up to seven type arguments. You can add more component types by chaining calls together.

To add component types that are not known at compile time, use EntityQueryBuilder.WithAbsent@@\<c>1(\</c>@@0)

Component types added using WithAbsent are never written to. If the [ComponentType.AccessMode](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode.md) field of the provided component type is [ComponentType.AccessMode.ReadWrite](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode/readwrite.md), it will be forced to [ComponentType.AccessMode.ReadOnly](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode/readonly.md) in the final query.

## WithAbsent\<T>(T)

Add absent component types to the query.

```csharp
public EntityQueryBuilder WithAbsent<T>(ref T componentTypes) where T : INativeList<ComponentType>
```

### Parameters

**** (T): A list of component types that implements INativeList@@1. For example, NativeList@@1 or FixedList64Bytes

### Returns

| Type                                                                                       | Description                                  |
| ------------------------------------------------------------------------------------------ | -------------------------------------------- |
| [EntityQueryBuilder](/engine/7000.0/script-reference/unity/entities/entityquerybuilder.md) | The builder object that invoked this method. |

### Remarks

To match the resulting query, an archetype must not have any of the absent components.

To add component types that are known at compile time, use WithNone@@@@1

There are several ways to exclude components from a query:

* WithAbsent\\\<T\\>() matches all entities in chunks that do not have T at all.

* WithDisabled\\\<T\\>() matches chunks that must have T, but only matches entities where T is disabled.

* WithNone\\\<T\\>() matches both of the above cases: either the component isn't present at all, or it is present but disabled.

Component types added using WithAbsent are never written to. If the [ComponentType.AccessMode](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode.md) field of the provided component type is [ComponentType.AccessMode.ReadWrite](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode/readwrite.md), it will be forced to [ComponentType.AccessMode.ReadOnly](/engine/7000.0/script-reference/unity/entities/componenttype/accessmode/readonly.md) in the final query.
