Sequences are of container type, just as collections. They only differ in in how they handle multi-step processing. In a chained operations call collections are evaluated eagerly. This way intermediate collection are returned when each step completes processing. This creates overhead. Sequences solves this by evaluating chained operations lazily: actual computing happens only when the result of the whole processing chain is requested.