I will answer the part that gives, which is what we do here, opinions are of no use except to unduly influence who is naive. Listing a lot of places to learn will not help. But you can see this c # .
C # is a language like any other. It has virtues and defects like all of them. It allows you to perform virtually any application, except for some specific technical impositions. Of course not all is the best solution.
Platform
It runs where you have a CLR .
It does not run in a browser, but may one day run with the advent of WebAssembly (has a form but I still do not think it's good). But it runs on the server side generating what is needed by the client.
The only database it runs is SQL Server . It just does not spin on others because no one has made an implementation. Note that I'm not talking about communicating with other banks, there are libraries to communicate with all that matter.
It runs on the three desktop platforms that are actually used and on the three largest mobile platforms. In addition to running on other systems few used. It still runs on embedded devices and IoT , though this is still in its infancy, but it's all in the pipeline. If it does not run somewhere it's a matter of someone doing an implementation.
Applications
You can make operating systems and drivers with some adaptation, but it is not ideal.
If you want to make a real-time application, it will be difficult, even if it does, but real-time even language suffers.
C # is not the most optimized language in the world, but is far from slow, on the contrary, it approaches C / C ++ in many operations.
It does not have the best statistical tools available, but it breaks a branch.
The code scales well and has libraries virtually for everything you might need that matters. What does not exist is easy to do a binding .
It maintains memory security, types, etc. as close as possible.
It is relatively easy to write and maintain codes, powerful and flexible, but it does not meet extreme needs and very specific niches.
Finally, you can make commercial, scientific, games applications, it is general purpose.
Conclusion
In fact almost all of this can be said of several languages.
Many people speak too well, many speak too badly. For the most part they are opinions without basis in both cases. Those who have a base can be biased. If you want to choose well learn deeply all fundamental concepts of computing to make the right decision. If you want to depend on random people on the internet you have to see in C # because it does not have major problems that make it unfeasible and it seems that is what you want, this is important to help in the decision.
If you have more specific questions we can help you more.
There are some things that can help, but it's the tip of the iceberg: