operator [] method

  1. @override
E operator [](
  1. Object identifier
)

Returns the value associated with identifier.

The identifier must be an index (int) or a label (String).

A RangeError will be thrown if the identifier isn't a valid index, or a StateError will be thrown if isn't a valid label.

Implementation

@override
E operator [](Object identifier) {
  assert(identifier is int || identifier is String);

  if (identifier is String) {
    if (!_labels.contains(identifier)) {
      throw StateError('The provided [identifier] isn\'t '
          'associated with any element in this list.');
    }
    return elements[_labels.indexOf(identifier)];
  }

  return elements[identifier as int];
}