/// <summary>
        /// Enables to skip items on next iteration or all items at once
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <returns></returns>
        public static IEnumerable <FlaggableElement <T> > ToFlaggable <T>(this IEnumerable <T> source)
        {
            var s = new FlaggableStream();
            var a = source.ToArray(k => new FlaggableElement <T>(k, s));

            return(from k in a
                   where !k.SkipAtNextIteration
                   where !k.Stream.SkipElements
                   select k);
        }
 public FlaggableElement(T Current, FlaggableStream Stream)
 {
     this.Current = Current;
     this.Stream  = Stream;
 }