static uint HashString(String str) { uint hash = 0; int l = str.Length; // rotate in string character for (int i=0; i < l; i++) { hash = (hash << 3) ^ (uint)str[i] ^ (hash >> 29); } return hash; }