public int Compare(object firstObject, object secondObject)
{
string firstString = firstObject as string;
string secondString = secondObject as string;
if (firstString == null)
{
return secondString == null ? 0 : -1;
}
if (secondString == null)
{
return 1;
}
int result = firstString.Length - secondString.Length;
int comparisons = result > 0 ? secondString.Length : firstString.Length;
int difference, index = 0;
while (index < comparisons)
{
difference = (int)(AsciiToLower[firstString[index]] - AsciiToLower[secondString[index]]);
if (difference != 0)
{
result = difference;
break;
}
index++;
}
return result;
}