using System.Collections.Generic;
public static void Main()
var myList= new List<BtnCountViews>
new BtnCountViews{ DayOfYear = 5, BtnCount = 10, Views = 5},
new BtnCountViews{ DayOfYear = 25, BtnCount = 8, Views = 6},
new BtnCountViews{ DayOfYear = 52, BtnCount = 12, Views = 7},
new BtnCountViews{ DayOfYear = 75, BtnCount = 15, Views = 8},
new BtnCountViews{ DayOfYear = 250, BtnCount = 20, Views = 9}
var filled = GetBackFilledList(myList);
filled.OrderBy(f => f.DayOfYear).Dump();
public static IList<BtnCountViews> GetBackFilledList(IList<BtnCountViews> incoming)
var map = incoming.ToDictionary(k => k.DayOfYear, v => v);
var defaultList = GetDefaultList();
foreach(var itm in defaultList)
if (map.ContainsKey(itm.DayOfYear)) continue;
map.Add(itm.DayOfYear, itm);
return map.Select(m => m.Value).ToList();
public static IList<BtnCountViews> GetDefaultList()
var defaultList = Enumerable.Range(1, 365).Select(e =>
public class BtnCountViews
public int DayOfYear { get; set; }
public int BtnCount { get; set; }
public int Views { get; set; }