public unsafe static bool FastEquals (string one, string two) { if ((one as object) == (two as object)) return true; if (two == null || two == null) return false; int len = one.Length; if (len != two.Length) return false; if (one [0] != two [0]) return false; if (len > 1) { if (one [len - 1] != two [len - 1]) return false; if (len > 2) { if (len == 3) { if (one [1] != two [1]) return false; } else if (len == 4) { if (one [1] != two [1] || one [2] != two [2]) return false; } else { unsafe { char s1 = one [1]; char s2 = two [1]; char *p1 = &s1; char *p2 = &s2; for (int i = 1; i < len - 2; i++) { if (*p1 != *p2) return false; p1++; p2++; } } } } } return true; }