public static IObservable <IList <VerocityInfo> > TakeLastVerocities(this IInputObservable io, int count) { return(io.TakeLastTimeIntervalBuffer(count).Select(timeEvents => { var verocities = new List <VerocityInfo>(); var prev = timeEvents.First(); for (int i = 1; i < timeEvents.Count; i++) { var t = timeEvents[i]; verocities.Add(VerocityInfo.Create(prev, t)); prev = t; } return verocities; })); }