As someone who is coming from a very FOSS world and trying to learn C#, I have to counter that no, C# does not have a really good open source ecosystem. Mono works, MonoStudio is pretty decent, but it lacks all of Windows, and there isn't much to target that is not Windows if you are doing anything that is not a webapp.
Objective-C also has a pretty decent open source toolkit in GCC, but a toolkit that lacks Cocoa is like trying to eat dinner but forgetting the food. Mono is a great toolkit, but it's missing 80% of the libraries that makes C# an easy language to use. You've got your forks and spoons, but you've got nothing to eat.
Note that I'm not complaining against C#. I'm really liking the language and everything I can do when I'm in a Windows or Windows Phone environment. I'm arguing that C# is not as portable, in practice, as everyone continually claims.
Furthermore, much of the documentation assumes a Windows environment. Getting a development environment set up around Mono has been possible but challenging.
F# and Mono are neat, but .NET has a long way to go before it becomes as cross-platform as Java.
With that said, I know a lot of devs who hate almost everything about MS that actually do like C#.
So, it free, it has full FOSS tooling. What's the problem?