All pastes #257859 Raw Edit

Someone

public text v1 · immutable
#257859 ·published 2006-11-25 21:21 UTC
rendered paste body
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;
		}