Mostly self-taught in the sense that I knew a lot of it right off the bat as it is very similar to some other languages I worked with. But I learnt some parts from TheNewBoston on youtube which is a really great channel for beginners, he teaches many different languages from JS to PHP to C++, also he teaches things like Photoshop and After Effects. Really great channel and it's aimed at beginners but the tutorials get much better as they progress, everyone can learn something.
That said, I don't use C# that much anymore, I mostly use a cross-platform language called Haxe which is very, very similar to C# but it works on iOS, Linux, Mac, Windows, Flash player... pretty much everything. It's quite unpopular but it is best known for its game development community for 2D games, and was the language used to create the game Papers, Please (BTW it's a really fun game).
I honestly can't say I sat down with one book and by the end of it I had 'learned C#' but just reading through (not always following) tutorials online and just seeing what works and doesn't work. Have a nice day :)