Skip to content

Buffering #87

@GoogleCodeExporter

Description

@GoogleCodeExporter
The use of buffering on Repeat() and Cartesian() is currently commented as a 
TODO. The attached patch:

1. Implements a buffering class that buffers enumerables in memory.
2. Changes Repeat() and Cartesian to use this buffering.
3. Further changes Repeat() to skip this if the count is 0 or 1.
4. Defines an IBufferedEnumerable<T> interfaces, documented as adding a 
buffering guarantee to IEnumerable<T>.
5. Defines two overloads of a method to create such a buffered instance. One of 
which insists that buffering happen even if the source implements 
ICollection<T>. (Otherwise it is assumed that the source already serves as a 
buffer adequately).

In short: Deals with the two TODO items, and brings the advantage of the code 
needed to do so, to the user.

Original issue reported on code.google.com by j...@hackcraft.net on 12 Dec 2013 at 2:46

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions