Niestandardowe sortowanie za pomocą LINQ

Wygląda na to, że brakuje mi czegoś trywialnego.

W każdym razie tutaj:

var order = new[]{1,3,2};
var foos = new[]{new Foo{Id=1}, new Foo{Id=2}, new Foo{Id=3}};

Jak sortować foos przez tablicę zamówień za pomocą Linq?

Pożądany rezultat:

foos == new[]{new Foo{Id=1}, new Foo{Id=3}, new Foo{Id=2}};

Edytować:
Zamówienie zawiera identyfikatory Foo. Przepraszam, że o tym nie wspomniałem. Czasem trudniej jest właściwie zadać pytanie, niż odpowiedzieć. :)

questionAnswers(6)

yourAnswerToTheQuestion