# whereType<T> method

1. @override

Iterable<T> whereType<T>()
override

Creates a new lazy Iterable with all elements that have type `T`.

The matching elements have the same order in the returned iterable as they have in iterator.

This method returns a view of the mapped elements. Iterating will not cache results, and thus iterating multiple times over the returned Iterable may yield different results, if the underlying elements change between iterations.

## Implementation

    @override
    Iterable<T> whereType<T>() sync* {
      for (final element in this) {
        if (element is T) {
          yield element;
        }
      }
    }