It's got all the awesome features most of which are very elegantly implemented and accessible in a very streamlined fashion. Obviously if you hate C-syntax, C# isn't going to win any brownie points, but in terms of sheer power and flexibility, C# 5.0 steals the cake by a huge margin. Lambdas, parallelization, anonymous functions, interop with C functions, fast compilation, "fast" execution, awesome bytecode, and more. Constantly iterating, but not breaking with the original design goals.
It's borrowed the right features from the right languages, the right syntax from the right languages, and the right design choices from the right languages.
(Although I do dislike how the new dynamic keyword is implemented. It throws then catches too many exceptions under the hood and people really need to understand it before they use it. It was primarily designed to convert unknown/random JSON to a C# object on the fly and should not be abused. Many people coming from dynamically-typed, loosely-defined languages might think it's an easy way of adapting to the traditionally statically-typed and statically-defined C#... not so.)
(And, like it or not, it really is a cross-platform language. Mono does count and is pretty awesome. Esp. if you think about the compatibility of the language and not the framework.)
I'm still a die-hard C/C++ coder, but C# won my heart a long time ago.