It works on Linux. But you'll notice every now and then how it just doesn't quite want to fit in, especially the developer tooling around it. It's not that it doesn't work, you just stumble over minor annoyances that don't happen on Windows and VSCode (with the proprietary plugin). Quite a contrast to developing in Rust on Linux, for example.
Except for GUI frameworks, where you need to rely on the community, and for certain VS features you need to buy Rider, as VSCode is supposed to only be good enough.
So the problem with .NET is that you only have community-maintained GUI frameworks, opposed to other ecosystems where you have community-maintained GUI frameworks.