public override IEnumerable <IEnumerable <T> > Select(IEnumerable <T> source) { List <IEnumerable <T> > all = new List <IEnumerable <T> >(); foreach (var i in Source.Select(source)) { List <T> group = new List <T>(); foreach (var x in i) { if (Predicate(x, group)) { group.Add(x); } else if (group.Count > 0) { all.Add(group); group = new List <T>(); } } if (group.Count > 0) { all.Add(group); } } return(all); }
public override IEnumerable <IEnumerable <T> > Select(IEnumerable <T> source) { List <IEnumerable <T> > ranges = new List <IEnumerable <T> >(); var all = Source.Select(source); foreach (var range in all) { int length = range.Count(); for (int i = 0; i < length - count; i++) { var next = range.Skip(i).Take(count); if (Predicate(next)) { ranges.Add(next); } } } return(ranges); }
public override IEnumerable <IEnumerable <T> > Select(IEnumerable <T> source) => Source.Select(source).Where(x => x.Count() >= Amout);