public virtual IList<Task> GetTasksWith(State state) { IList<Task> tasksWithState = new List<Task>(); foreach (Task task in tasks) { if (task.State == state) tasksWithState.Add(task); } return tasksWithState; }