I thought this looked cool:
for (Int32 i = 0; i < value.Length; i++) {
result ^= (((Int32)value[i]) << ((i % 4) * 8));
}
...it's a shame it's a hack.
I just needed to create a hash-code for an arbitrarily long byte array.
Hey, it works. And it looks cool. What more could you possibly want right..? :)
John.