Akka.Streams.Tests.Dsl.FlowSlidingSpec.Sliding C# (CSharp) Method

Sliding() private static method

private static Sliding ( List source, int win, int step ) : List>
source List
win int
step int
return List>
        private static List<List<int>> Sliding(List<int> source, int win, int step)
        {
            var result = new List<List<int>>();

            if (source.Count == 0)
                return result;

            if (source.Count <= win)
            {
                result.Add(source);
                return result;
            }

            while (source.Any())
            {
                var window = source.Take(win).ToList();
                result.Add(window);
                if (source.Count <= win)
                    break;
                source = source.Skip(step).ToList();
            }

            return result;
        }