Reordering a queue is not a normal operation - if you are doing that, then you are probably using the wrong collection.
And quite why you don't want to use ToArray I'm not sure - but you can't just cast a collection to an array in the way you seem to think: that is why ToArray exists.
You don't have to convert anything to an array in order to sort it though:
Queue<int> qu = new Queue<int>();
qu.Enqueue(4);
qu.Enqueue(1);
qu.Enqueue(5);
qu.Enqueue(2);
qu.Enqueue(3);
qu = new Queue<int>(qu.OrderBy(q => q));
Will do it.