I've heard good things about them both, but be advised that C# and XNA will not, at least, not in the forseeable future be used for AAA games on major consoles, this generation or next, or on PCs.
That being said, it's apparently very good for more independent games, so if your goal is to make a game that you can market on XBLA, or something of a similar sort, then by all means, use XNA. It's fast, it's apparently reasonably easy, and has lots of support, and seems like a great way to get started in game development.
However, if your end goal is to get into the industry, in one way or another, or if you want to learn some more general programming, then I'd advise learning C++ from get-go (not that C# is bad!). Learning a lower-level language like C++ or C, or even Java (though not as much) gives you a ton of incidental benefits, and doesn't give you anywhere near as many bad habits as higher-level languages; it forces you to eventually learn how systems manage memory, how data is physically represented in a computer, and just how the CPU (and other hardware) do what you tell it. C++ is essentially the industry standard for games; while there are a few major games written in Java, or C, or other languages, the vast majority of large 3D titles are written in C++, mainly due to it's speed (very few things beat it, usually only really low-level languages like C and FORTRAN, though occasionally Java can be made to run faster in certain circumstances (though these are very few, and far between)), compile-time flexibility, and large-scale engine support.</c++marketingblurb>
So you can probably see where I stand on the issue. But it's very much up to you. Heard very good things about C#, especially for more independent games. But if you really want to eventually make/contribute to large titles, you should probably learn C++ from the start.