using System.Collections.Generic;
public static void Main()
var values = new List<decimal>
var result = values.GetPreviousN<decimal>(3);
foreach(var item in result)
Console.WriteLine(string.Join(",",item));
public static class Extensions
public static IEnumerable<IEnumerable<T>> GetPreviousN<T>(this IList<T> source,int count)
for(int i=0;i<source.Count;i++)
yield return source.Take(i).Reverse().Take(count);