Not having played with C#, I can't comment on it other than to say that a number of people I respect have given it a thumbs up. I can't help but wonder if Java 1.5's autoboxing, generics, improved for loop and other features are a result of C# competition or if this an example of Sun really paying attention to some things needed in the language?
The autoboxing really strikes me as significant. Mixing primitives and objects in the language has long been one of the largest sources of complaints about the language. Autoboxing seems like a hack instead of going with a flyweight pattern, but it's better than ignoring the problem (and I can't say that I know enough about the technical reasons for the decision). Still, I can't help but shake the feeling that Sun is behaving a bit like Microsoft here. Once MS dominated the browser market, they pretty much stopped developing IE. Sun, having developed a hugely popular language, seemed content to ignore some of the crufty features -- until C# started giving them the boot.
Now I wonder when they're going to fix their silly inheritence issues. Interfaces can help, but they were only a partial solution to the multiple-inheritance issues. I wouldn't be surprised to see Sun come up with proposals for multiple inheritance, mixins, or traits. I think Java is finally getting interesting.