public override void Shift() { var segments = WindowList.TakeWhile(s => s.StateInWindow == State.Confirmed); OutputList.AddRange(segments); WindowList.RemoveRange(0, segments.Count()); }