In my experience C# is just a better language than Java (which isn't suprising, as C# was made just to be a better Java clone). Things like
* value types (instead of boxing)
* no type erasure
* runtime exceptions
* dynamic/duck typing
* operator overloading (try working with arbitrary length decimals in Java)
just solve a lot of the small headaches of everyday programming.That said, I still prefer Java because of the ecosystem and newer JVM languages like Clojure and Scala might just make Java irrelevant.