A colleague (a .NET fan) argued that (in context to Java vs .NET comparison), while there are different arguments for Java and for .NET, and to determine which one is the better choice is a business or personal decision depending on many factors, but from programming language point of view, .NET's C# is clearly a more powerful programming language than Java
To summarize, everything that can be written in Java can be written in C# just as easily or easier, but the reverse is not true. Many features such as lambda expression, and linq is impossible (or very hard in Java), and C# also has syntactic sugar that makes things a lot easier, such as extension method, automatic properties, etc. But there is almost no feature that can be done in Java but impossible or very difficult in C#?
So, in any possible situation C# is equal or more powerful than Java. Is my colleague's assertion correct? If not, what are some examples of coding that is clean and easy in Java but messy, difficult or impossible in C#?
Note: I don't think this is a subjective/argumentative question. I am not looking for arguments that Java is a better choice, or .NET is. I am just asking for evaluation based on facts and concrete examples. For example (made-up example): in .NET iterating on a list will need a dirty workaround and takes dozens of lines, while in java it's just a few clean line