C# is a Microsoft specific language and relies on the Microsoft compiler, so your options are very limited.
.NET is a Microsoft specific implementation of the CLI that includes C#. C# is an internationally standardized language whose evolution is driven solely by Microsoft presently, but there's nothing stopping someone from writing a compiler for it. If nothing else, the existence of Mono belies your statement that C# relies on the Microsoft compiler.
I'm curious why the OP wants to exclude Visual Studio.