Here is an article to get you started:
http://www.terminally-incoherent.com/blog/2010/02/18/collecting-hardware-information-using-c-and-wmi/[
^]
However, there aren't a lot of full applications already out there to do an inventory using C#. The reason for this is because the typical way of doing an inventory is through VBScript or, more recently, Powershell. I'm not sure of your requirements, but I would look at doing the inventory using a pre-built script and then saving the information to a CSV file. Then you could read it using C#. However, if you want to build something, the above article will give you what you need. The last piece will be authentication. I believe you will need a login on each machine since they are in a workgroup. Then you will use this login to authenticate you on that remote machine.