static bool ArrayEqualityImpl(Array lhs, Array rhs)
{
if (1 != lhs.Rank || 1 != rhs.Rank)
{
throw new ArgumentException("array rank must be 1");
}
if (lhs.Length != rhs.Length)
{
return false;
}
for (int i = 0; i < lhs.Length; ++i)
{
if (!EqualityOperator(lhs.GetValue(i), rhs.GetValue(i)))
{
return false;
}
}
return true;
}