Actually I have to correct you a bit on this one, XNA is the dead and dying technology as to where Java lives on. XNA Is in itself outdated, it is no longer maintained and Microsoft will be announcing it's depreciation very soon (It's all related to the new "Durango" console they are releasing and the new Windows App Store all platform consolidation).
With that said I personally still prefer C# over any other language for numerous reasons mainly it's productivity out weighs it's performance loss (which is overstated in the first place). I have a lot of experience in XNA and was quite upset to find out that Windows 8 only supports XNA in legacy mode, new Windows mobiles don't support it at all and that you can't even sell an XNA based game on the app store anymore (way to fail Microsoft). However lucky for us the open source world has seen the potential of this great framework, there is also "MonoGame" which is the open source build of XNA that is not reliant on Microsoft technology! Basically this means that it's an almost identical code base and framework that actually works on all Mono supported platforms (including windows, mac, linux PC's and android devices!).
So back to the actual question, learning C# and XNA (or Mono Game for that matter). Your first step will be to go back to Java. There are very few C# references for beginners, most if not all of the educational material related to C# assumes that you are coming from another language such as Java or C++. Personally I am unaware of any sources that take you from 0 programming knowledge to using C#, someone else might help you find something of this nature. However the core concepts of Java and C# are almost exactly the same, the true object oriented programming model. This is why I say go back to java, once you are comfortable creating basic Java programs, managing variables, input and output then you can easily transition into C# (normally in the matter of a day or two). There are vast amounts of Java for beginners resources out there that apply to the core concepts of C#.
Some final notes about technology to choose, C# is emerging and finally starting to catch up to other languages in that we now have a few (very poorly documented) options. There is XNA which you can still use but as mentioned is no longer maintained nor will it be supported in the near future. There is Mono Game which is the open source version of XNA that is maintained and will be maintained for the foreseeable future. If you require a more direct approach or more performance from your game on windows platforms there is also "SlimDX" and "SharpDX" which are two different managed Direct X libraries. SlimDX is a wrapper around the C++ Direct X libraries (which makes it slightly limited and means that the Direct X calling isn't "managed" or "safe"). Sharp DX is actually a completely different approach and is a managed build of the Direct X Libraries themselves which means that it is real Direct X in a managed environment. However you will find documentation for Sharp DX says "Here's where all the functions are, go read how to use Direct X in C++ and figure it out". Also if you are just interested in making a game and not fiddling around with the engine layer that is overly complicated and already done there is Unity which provides an amazing designer, supports C# scripting, has great tutorials and documentation and best of all for PC games is 100% free! In My opinion these are your modern not outdated options and might be what you want to look in to, feel free to get in contact with me I sent my skype name in a pm.