>>6512334I prefer it to Java but I'm kinda biased because I never really liked Java to begin with. There are a lot more features in C# which means there's more to learn but it's more powerful too. It has nice things like lambdas, marshalling and you can (sort of) access unmanaged memory directly without the silly hacks you would need in Java.
It's only a good choice if you're developing entirely for a Windows based system because implementations on other platforms are lacklustre at best, whereas Java is extremely ubiquitous and will most likely run on your toaster if you asked it nicely enough.
As far as efficiency is concerned I don't know which would be better. C# leads itself to a lot of the same bad design practices Java does but ignoring that I would assume the .NET jitter would be more efficient just because it's made by Microsoft for Windows specifically and they know their OS better than anyone else could. I could be wrong though.