I am curious, why do you think C# is less general-purpose than Java?
C# could have been much more if Microsoft collaborated with other open-source projects instead of actively fighting and killing them by offering the same functionality natively. All this for having a much tighter control over the ecosystem.
Microsoft tried to push it a bit once they bought it for cross-platform mobile dev (back when Windows Phone was still a thing), but that never took off to any extent either.