description

# Uint16List.sublistView constructor

Uint16List.sublistView(

1. TypedData data, [
2. int start = 0,
3. int? end

])

Creates a Uint16List view on a range of elements of `data`.

Creates a view on the range of `data.buffer` which corresponds to the elements of `data` from `start` until `end`. If `data` is a typed data list, like Uint16List, then the view is on the bytes of the elements with indices from `start` until `end`. If `data` is a ByteData, it's treated like a list of bytes.

If provided, `start` and `end` must satisfy

0 ≤ `start` ≤ `end` ≤ elementCount

where elementCount is the number of elements in `data`, which is the same as the List.length of a typed data list.

If omitted, `start` defaults to zero and `end` to elementCount.

The start and end indices of the range of bytes being viewed must be multiples of two.

## Implementation

    factory Uint16List.sublistView(TypedData data, [int start = 0, int? end]) {
      int elementSize = data.elementSizeInBytes;
      end = RangeError.checkValidRange(
        start,
        end,
        data.lengthInBytes ~/ elementSize,
      );
      int byteLength = (end - start) * elementSize;
      if (byteLength % bytesPerElement != 0) {
        throw ArgumentError(
          "The number of bytes to view must be a multiple of " +
              "$bytesPerElement",
        );
      }
      return data.buffer.asUint16List(
        data.offsetInBytes + start * elementSize,
        byteLength ~/ bytesPerElement,
      );
    }