matches method

bool matches(
  1. Iterable<T> other, {
  2. bool ordered = false,
})

Returns true if this and other are the same length and contain all of the same elements.

If ordered is true, the elements must be in the same order in both iterables for this to return true.

Implementation

bool matches(Iterable<T> other, {bool ordered = false}) {
  if (length != other.length) {
    return false;
  }

  if (ordered) {
    for (var i = 0; i < length; i++) {
      if (elementAt(i) != other.elementAt(i)) {
        return false;
      }
    }
  } else {
    final elements = toList();
    for (var element in other) {
      if (!elements.remove(element)) {
        return false;
      }
    }
  }

  return true;
}