Short answer, 1 isn't of type
Foo
even though Foo has a value of 1. You aren't a VB dev by any chance? The reason I say this is the enum is 0-based in .net so tue is 1, not mon (which is 0), but I digress. To fix your code is simple:
Foo f =(Foo)1;
Though there are lots of circumstances where the above is useful, it is more usual to do
Foo f =Foo.tue;