No it's not that complicated 
VB.Net Code:
Dim installed_versions As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP")
Dim version_names As String() = installed_versions.GetSubKeyNames()
'now you have them in array 'version_names' and you can do what you wanna...
'to get them in string...
Dim NETversions As String = String.Join(" ; ", version_names)
'NETversions string on my comp is "v1.1.4322 ; v2.0.50727 ; v3.0 ; v3.5"
Ahh, and for net 1 is diferent reg key... search it on google if you need net 1