static uint HashCharArray(char[] a, int l) { uint hash = 0; // rotate in a character for (int i=0; i < l; i++) { hash = (hash << 3) ^ (uint)a[i] ^ (hash >> 29); } return hash; }