# Query

> Get Enumerable for iterating through Component types from inside a system

## Definition

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

## Query\<T>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1> Query<T1>() where T1 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                      | Description                                                                       |
| ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2> Query<T1, T2>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                         | Description                                                                       |
| -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U, V>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2, T3> Query<T1, T2, T3>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter where T3 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                            | Description                                                                  |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all entities with a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U, V, W>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2, T3, T4> Query<T1, T2, T3, T4>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter where T3 : unmanaged, IQueryTypeParameter where T4 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                               | Description                                                                       |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T, T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U, V, W, X>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2, T3, T4, T5> Query<T1, T2, T3, T4, T5>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter where T3 : unmanaged, IQueryTypeParameter where T4 : unmanaged, IQueryTypeParameter where T5 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                                  | Description                                                                       |
| ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T, T, T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U, V, W, X, Y>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2, T3, T4, T5, T6> Query<T1, T2, T3, T4, T5, T6>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter where T3 : unmanaged, IQueryTypeParameter where T4 : unmanaged, IQueryTypeParameter where T5 : unmanaged, IQueryTypeParameter where T6 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                                     | Description                                                                       |
| -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T, T, T, T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods

## Query\<T, U, V, W, X, Y, Z>()

Get Enumerable for iterating through Component types from inside a system

```csharp
public static QueryEnumerable<T1, T2, T3, T4, T5, T6, T7> Query<T1, T2, T3, T4, T5, T6, T7>() where T1 : unmanaged, IQueryTypeParameter where T2 : unmanaged, IQueryTypeParameter where T3 : unmanaged, IQueryTypeParameter where T4 : unmanaged, IQueryTypeParameter where T5 : unmanaged, IQueryTypeParameter where T6 : unmanaged, IQueryTypeParameter where T7 : unmanaged, IQueryTypeParameter
```

### Returns

| Type                                                                                                        | Description                                                                       |
| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [QueryEnumerable\<T, T, T, T, T, T, T>](/engine/7000.0/script-reference/unity/entities/queryenumerable1.md) | QueryEnumerable that allows enumerating over all RefRO and RefRW of a given type. |

### Remarks

Not working in Entities.ForEach, IJobEntity, and Utility methods
