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
var order = new[] { 1, 3, 2 }; var foos = new[] { new Foo { Id = 1 }, new Foo { Id = 2 }, new Foo { Id = 3 } }; var query = from o in order join foo in foos on o equals foo.Id select foo; var foos2 = query.ToArray();