public static void Remove(this GameComponentCollection components, object component) { if (component == null) { throw new ArgumentNullException("component"); } var item = components.FirstOrDefault(c => (c is GameComponentAdapter) && ((GameComponentAdapter)c).InnerComponent == component); if (item != null) { components.Remove(item); } }