To be honest, I'm working with C# everyday, and I can say that I love its elegant syntax. But no language is perfect, so does C#. In my opinion, these two features are missing:
Full-featured enum. I was pretty happy with enum in C#, until I know about enum in Java. Of course, we can "simulate" a full-featured enum in C# by class, but it's much better if Microsoft simplify this.
Immutable keyword. We are told to let a class/struct immutable whenever possible. But to do that, we have to add readonly keyword to every field, and then if we add setter by a mistake, our class will be mutable, and nobody knows. By immutable keyword, every field will be automatically readonly, and any setter will be prohibited (error when compile). It's like static keyword added to class in C# 2.0
well. what's is your annoying/lacking feature in C#?