class Program { static void Main(string[] args) { TasksList tl = new TasksList(new int[] { 1, 2, 3, 4, 5 }); Console.WriteLine("The tasks list length " + tl.Tasks.Length); } } class Task { private readonly TasksList list; private readonly int id; public Task(TasksList list, int id) { this.list = list; this.id = id; } } class TasksList { private readonly Task[] tasks; public TasksList(int[] ids) { var mutableList = new List(); foreach (int id in ids) { Task t = new Task(this, id); mutableList.Add(t); } this.tasks = mutableList.ToArray(); } public Task[] Tasks { get { return tasks; } } }