int CompareEnumerables(IEnumerable lhs, IEnumerable rhs)
{
IEnumerator lhsEnum = lhs.GetEnumerator();
IEnumerator rhsEnum = rhs.GetEnumerator();
while (lhsEnum.MoveNext())
{
if (!rhsEnum.MoveNext())
{
return 1;
}
int value = Compare(lhsEnum.Current, rhsEnum.Current);
if (0 == value)
{
continue;
}
return value;
}
if (rhsEnum.MoveNext())
{
return -1;
}
return 0;
}