Finding two strings by repeatedly comparing random strings will take practically forever. Instead generate strings and store them in an a dictionary by hashcode. Then look up each. Match found pretty quickly.
MATCH FOUND!! xqzrbn and krumld hash code 80425224
void Main()
{
var lookup = new Dictionary<int,string>();
while(true) {
var s = RandomString();
var h = s.GetHashCode();
string s2;
if (lookup.TryGetValue(h, out s2) && s2 != s) {
Console.WriteLine("MATCH FOUND!! {0} and {1} hash code {2}",
lookup[h],
s,
h);
break;
}
lookup[h] = s;
if (lookup.Count % 1000 == 0) {
Console.WriteLine(lookup.Count);
}
}
}
static Random r = new Random();
// Define other methods and classes here
static string RandomString() {
var s = ((char)r.Next((int)'a',((int)'z')+1)).ToString() +
((char)r.Next((int)'a',((int)'z')+1)).ToString() +
((char)r.Next((int)'a',((int)'z')+1)).ToString() +
((char)r.Next((int)'a',((int)'z')+1)).ToString() +
((char)r.Next((int)'a',((int)'z')+1)).ToString() +
((char)r.Next((int)'a',((int)'z')+1)).ToString();
return s;
}