For example, if you only iterate thru the query once, you're better of not making an array, but just do a foreach on it, such as:
var components = ( from component in ChildComponents orderby component.UpdateOrder ascending where component.Enabled select component); foreach (var component in components) component.Update(gameTime);
If you on the other hand are going to iterate thru it many times, then you better cache it into an array, otherwise it will query and sort it each time you iterate.
That said, I don't think you can write a non-LINQ version of that particular code (i.e. tens of items once every game loop) that will provide you with significantly better performance. It should perform about the same as any non-LINQ version.