C# uses Manged directX , Managed means , basically , that garbage collection is carried out by the .net framework and bytecode is converted to Machine in realtime.
Well ,Curently , 99 % PC games ( or 100 maybe 100 %) are written in C++ and directX/OpenGL) , mainly because C++ compiles down to Machine code (more aptly Assembly) , and is lot faster than byte code compiled languages like Java and C#.MoreOver C++ is 3D industry standard.
But , its more of a myth now , as with JIT(Just In Time Compilation) , speed difference is negligible .
However , if you played "Da Vinci Code" 2006 ,it was written in C#.
DaVinciCode , for me , was as fast as say a C++ game like "Painkiller"
However , you will be better off using a Game-Engine (really good opensource and free(as in money) are available).But nearly every one of them is C++ or has a C++ backend.
So, to cut the long story short , try "Irrlicht"game engine . You can use it
with C++ or C# .Because learning directX/OpenGL requires lot of time and efforts. With Irrlicht you can really roll up a stupid game in 1 Month , but with directX , wait for eternity !!!
There is another game engine (library) called OGRE ,its more feature-rich
(features youll probaly never care for :) , but its mainly C++ only , though a working C# port exists(OGREdotnet).
You can find more info about game engines(libraries) on this link,
http://www.devmaster.net/engines/