A Minimalistic, extensible and lazy sequence implementation for .Net .
An auxiliary Collapse() method, which merges series of adjacent elements is written with Tinyield in the following way:
Traverser<T> Collapse<T>(Query<T> src) { return yld => { T prev = default(T); src.ForEach(item => { if (prev.Equals(default(T)) || !prev.Equals(item)) { prev = item; yld(item); } }); }; }
This method can be chained in a sequence like this:
int[] arrange = new int[] { 7, 7, 8, 9, 9, 11, 11, 7 }; List<int> actual = Query.Of(arrange) .Then(n => Collapse(n)) .Where(n => n % 2 != 0) .ToList();
$ dotnet add package com.tinyield.tinyield4net --version 1.0.0
Or check the nuget package for more info.
This project is licensed under Apache License, version 2.0