Unfortunately, there is no “neat" way to do this as such. A 3G connection will look like an ADSL or dial-up connection (with a type of PPP network).
If you are sure that you will only be in WiFi / 3G, then you can check the information in the NetworkInterface class provided by GetAllNetworkInterfaces and consider it as 3G if the interface type is PPP. But, as I said, this is the same for other types of modem connection.
Edit: You may be lucky to find "3G", "HSPA", "HSDPA", "Dongle" in the name or description of the device. But that would be a “decent guess”, and not be absolutely sure.
PhonicUK
source share