public static void Dispose(this GameComponentCollection components, int index) { (components[index] as IDisposable)?.Dispose(); components.RemoveAt(index); }