Please see my comments to the question: there is no one single algorithms.
Also, hash functions are different for different purposes. There are at least two distinct classes of them:
It depends on your purpose, which you did not bother to share with us.
You can learn the algorithms starting from the articles referenced above, but a good number of them are readily available from .NET FCL.
First of all, each and every .NET object of any type has one: http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx
And on the cryptographic side, a number of them are available: http://msdn.microsoft.com/en-us/library/system.security.cryptography.hashalgorithm.aspx