Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public override IEnumerable <IEnumerable <T> > Select(IEnumerable <T> source)
 => Source.Select(source).Where(x => x.Count() >= Amout);