Try this, you are recursively calling your constructor, and every time you initilize the object it will go into endless loop, so you got overflow exception. By overriding constructor (or you can use a method) and converting List to static, you won't call your consturctor recursively, each constructor will do their own job, defining variable as static will remain your Blagdani, if it is not static every Blagdani property will be the last value.
public static List<Blagdani> Blagdani_lista = new List<Blagdani>(); public DateTime datum { get; set; } public string dan_u_tjednu { get; set; } public Blagdani() { DateTime date = new DateTime(2017, 08, 05); string something = "Subota"; Blagdani b = new Blagdani(date, something); date = new DateTime(2017, 08, 15); something = "Utorak"; b = new Blagdani(date, something); date = new DateTime(2017, 08, 29); something = "Petak"; Blagdani qwe = new Blagdani(date, something); } public Blagdani(DateTime dt, string something) { // override constructor this.datum = dt; this.dan_u_tjednu = something; Blagdani_lista.Add(this); } Hope helps,