Дружба C# и Linux, как?
Можно запускать обычные сборки через Mono или .NET Core. Последнее предпочтительней. 
Программа уровня «Hello world» будет просто запускаться через выше указанные решения, например:mono helloworld.exe
dotnet helloworld.exe
# выполнение из исходного кода в текущем каталоге:
dotnet run
Для более сложных решений может потребоваться дополнительная адаптация кода. Под .NET Core это сделать удобней и проще. Писать и собирать код вполне можно в Visual Studio под Windows.
Гуглите .NET Core / Mono.