It seems that i\'m missing something trivial.
Anyway, here it goes:
var order = new[]{1,3,2}; var foos = new[]{new Foo{Id=1}, new Foo{Id=2}, new Fo
Is this what you are trying to do?
foos.OrderBy(f => order[f.Id-1]);
If you foreach now on the output of that, printing the ID, you get: 1,3,2