# TransformHandle.SubhierarchyEnumerator

> An enumerator that iterates over a TransformHandle instance and all of its descendants. The TransformHandle instance itself is yielded first, followed by its descendants in depth-first order.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule
* **Implements:** [IEnumerator\<TransformHandle>](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerator-1), [IEnumerator](https://learn.microsoft.com/dotnet/api/system.collections.ienumerator), [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public struct TransformHandle.SubhierarchyEnumerator : IEnumerator<TransformHandle>, IEnumerator, IDisposable
```

## Properties

| Property                                                                                                 | Description                                                             |
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [Current](/engine/6000.7/script-reference/unityengine/transformhandle/subhierarchyenumerator/current.md) | The TransformHandle instance at the current position of the enumerator. |

## Methods

| Method                                                                                                     | Description                                        |
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [Dispose](/engine/6000.7/script-reference/unityengine/transformhandle/subhierarchyenumerator/dispose.md)   | Disposes the enumerator.                           |
| [MoveNext](/engine/6000.7/script-reference/unityengine/transformhandle/subhierarchyenumerator/movenext.md) | Moves the enumerator to the next transform handle. |
