# ToEntityListAsync

> Creates (and asynchronously populates) a NativeList containing the selected entities. Since the exact number of entities matching the query won't be known until the job runs, this method returns a NativeList<T>.

## Definition

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

## ToEntityListAsync(AllocatorHandle, JobHandle)

Creates (and asynchronously populates) a NativeList containing the selected entities. Since the exact number of entities matching the query won't be known until the job runs, this method returns a [NativeList\<T>](/engine/7000.0/script-reference/unity/collections/nativelist1.md).

```csharp
public NativeList<Entity> ToEntityListAsync(AllocatorManager.AllocatorHandle allocator, out JobHandle outJobHandle)
```

### Parameters

**** (\[AllocatorHandle]\(/engine/7000.0/script-reference/unity/collections/allocatormanager/allocatorhandle)): The type of memory to allocate.**** (\[JobHandle]\(/engine/7000.0/script-reference/unity/jobs/jobhandle)): An `out` parameter assigned a handle that you can use as a dependency for a Job that uses the output data.

### Returns

| Type                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [NativeList\<Entity>](/engine/7000.0/script-reference/unity/collections/nativelist1.md) | A list containing all the entities selected by the query. The contents of this list (including the list's `Length` property) must not be accessed before `outJobHandle` has been completed. To pass this list to a job that expects a [NativeArray\<T>](/engine/7000.0/script-reference/unity/collections/nativearray1.md), use [NativeList\<T>.AsDeferredJobArray](/engine/7000.0/script-reference/unity/collections/nativelist1/asdeferredjobarray.md). |

### Remarks

This function is provided to handle cases that require a single linear indexable array of entities which match a query. If your goal is to iterate over entities to perform a per-entity operation, consider using [IJobEntity](/engine/7000.0/script-reference/unity/entities/ijobentity.md) or idiomatic foreach to iterate over the entities directly in their chunks, instead of creating a temporary copy.

The job scheduled by this call will automatically use the component safety system to determine its input dependencies, to avoid the most common race conditions. If additional input dependencies are required beyond what the component safety system knows about, use [EntityQuery.ToEntityListAsync](/engine/7000.0/script-reference/unity/entities/entityquery/toentitylistasync.md).

## ToEntityListAsync(AllocatorHandle, JobHandle, JobHandle)

Creates (and asynchronously populates) a NativeList containing the selected entities. Since the exact number of entities matching the query won't be known until the job runs, this method returns a [NativeList\<T>](/engine/7000.0/script-reference/unity/collections/nativelist1.md).

```csharp
public NativeList<Entity> ToEntityListAsync(AllocatorManager.AllocatorHandle allocator, JobHandle additionalInputDep, out JobHandle outJobHandle)
```

### Parameters

**** (\[AllocatorHandle]\(/engine/7000.0/script-reference/unity/collections/allocatormanager/allocatorhandle)): The type of memory to allocate.**** (\[JobHandle]\(/engine/7000.0/script-reference/unity/jobs/jobhandle)): A job handle which the newly scheduled job will depend upon, in addition to the dependencies automatically determined by the component safety system.**** (\[JobHandle]\(/engine/7000.0/script-reference/unity/jobs/jobhandle)): An `out` parameter assigned a handle that you can use as a dependency for a Job that uses the output data.

### Returns

| Type                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [NativeList\<Entity>](/engine/7000.0/script-reference/unity/collections/nativelist1.md) | A list containing all the entities selected by the query. The contents of this list (including the list's `Length` property) must not be accessed before `outJobHandle` has been completed. To pass this list to a job that expects a [NativeArray\<T>](/engine/7000.0/script-reference/unity/collections/nativearray1.md), use [NativeList\<T>.AsDeferredJobArray](/engine/7000.0/script-reference/unity/collections/nativelist1/asdeferredjobarray.md). |

### Remarks

This function is provided to handle cases that require a single linear indexable array of entities matches a query. If your goal is to iterate over entities to perform a per-entity operation, consider using [IJobEntity](/engine/7000.0/script-reference/unity/entities/ijobentity.md) or idiomatic foreach to iterate over the entities directly in their chunks, instead of creating a temporary copy.
