public override bool Equals(object obj)
{
BitSet other = obj as BitSet;
if (other == null)
return false;
if (IsEmpty())
return other.IsEmpty();
int minLength = Math.Min(_data.Length, other._data.Length);
for (int i = 0; i < minLength; i++)
{
if (_data[i] != other._data[i])
return false;
}
for (int i = minLength; i < _data.Length; i++)
{
if (_data[i] != 0)
return false;
}
for (int i = minLength; i < other._data.Length; i++)
{
if (other._data[i] != 0)
return false;
}
return true;
}