public static void Main()
Console.WriteLine(GetStableHashCode("Hello"));
Console.WriteLine(GetStableHashCode("Hello"));
Console.WriteLine(GetStableHashCode("Baleno"));
Console.WriteLine(GetStableHashCode("Baleno"));
Console.WriteLine(GetStableHashCode("Dragon"));
Console.WriteLine(GetStableHashCode("Dragon"));
Console.WriteLine(GetStableHashCode("Dinesh"));
Console.WriteLine(GetStableHashCode("Dinesh"));
Console.WriteLine(GetStableHashCode("DineshThambyAmbookkan"));
Console.WriteLine(GetStableHashCode("DineshThambyAmbookkan"));
Console.WriteLine("Hello World");
private static int GetStableHashCode(string str)
for (int i = 0; i < str.Length && str[i] != '\0'; i += 2)
hash1 = ((hash1 << 5) + hash1) ^ str[i];
if (i == str.Length - 1 || str[i + 1] == '\0')
hash2 = ((hash2 << 5) + hash2) ^ str[i + 1];
return hash1 + (hash2 * 1566083941);