Möchte noch anmerken dass C#-Code auch unter Linux lauffähig ist - .net ist eine Umsetzung eines ECMA-Standards der hauptschälich von MS entwickelt wurde. Deshalb bietet .net halt schon gute Windows-Forms unterstützung, die aber KEIN Bestandteil von C# bzw. von .NET, sondern eine MS-spezifische implementierung mithilfe C#-Klassen.
z.B. bin ich gerade an einer Remote-Anwendung zur Steuerung eines CS

-Servers dran, dessen Remote-Komponente unter Linux genauso läuft wie unter Windows - ohne neu zu kompilieren. Der Grund ist dass, genauso wie bei Java, ein JIT-Compiler vor der Ausführung läuft. .NEt ist dabei aber wesentlich performanter.
Java hat den Vorteil dass die Swing-UI bereits auf allen Systemen integriert ist und man bei .NEt z.B. auf GTK# ausweichen muss, was dann aber auf Windows und Linux laufen sollte (selber noch nicht getestet).
Die .NET umsetzung für Linux heißt übrigens mono und wird gemeinsam von Novell und MS entwickelt.
------------
BTT: Gute c# Bücher für den Einstieg gibt es tw. im Internet als EBooks. Wenn es dir nichts ausmacht am Bildschirm zu lesen musst du nur mal nach "ebook c#" oder "c# tutorial" googeln.
Entwicklungsumgebungen gibt es einige, unter Linux Monodevelop (
http://www.monodevelop.com/Main_Page) unter Windows SharpDevelop (
http://www.icsharpcode.net/OpenSource/SD/) oder gleich die MS-IDE Visual Studio Express (
http://www.microsoft.com/germany/msdn/vs…s/download.mspx)
Ich würde dir auf einem Windows System das Visual Studio empfehlen, ist gratis und am komfortabelsten.
Am besten du stellst dir selber eine kleine Aufgabe und probierst die dann zu programmieren. Solltest du nicht weiter wissen suchst du im Internet nach einer Lösung - So lernst du einiges über C#