TaskLinkCollection

TaskLinkCollection class

Represents a collection of Task objects.

public class TaskLinkCollection : IList<TaskLink>

Properties

NameDescription
Count { get; }Gets the number of objects contained in this TaskLinkCollection object.
Item { get; set; }Returns or sets the element at the specified index.
ParentProject { get; }Gets the parent project of the ResourceAssignmentCollection object. parent Project for this object.

Methods

NameDescription
Add(TaskLink)This is the stub implementation of ICollection’s Add method, that only throws NotSupportedException
Add(Task, Task)Returns an instance of Finish-Start TaskLink which has been added to the TaskLinkCollection object.
Add(Task, Task, TaskLinkType)Returns an instance of TaskLink which has been added to the TaskLinkCollection object.
Add(Task, Task, TaskLinkType, Duration)Returns an instance of TaskLink which has been added to the TaskLinkCollection object.
GetEnumerator()Returns an enumerator for this collection.
Remove(TaskLink)Removes task link from a project.
ToList()Converts the TaskLinkCollection object to a list of TaskLink objects.

Examples

Shows how to work with task link collections.

var project = new Project(DataDir + "SampleProject.mpp");

// get tasks
var task1 = project.RootTask.Children.GetById(1);
var task2 = project.RootTask.Children.GetById(2);
var task3 = project.RootTask.Children.GetById(3);
var task4 = project.RootTask.Children.GetById(4);
var task5 = project.RootTask.Children.GetById(5);

// link the tasks
project.TaskLinks.Add(task1, task2);
project.TaskLinks.Add(task2, task3, TaskLinkType.FinishToStart);
project.TaskLinks.Add(task3, task4, TaskLinkType.FinishToStart);
project.TaskLinks.Add(task4, task5, TaskLinkType.FinishToStart, project.GetDuration(1, TimeUnitType.Day));
project.TaskLinks.Add(task2, task5, TaskLinkType.FinishToStart, project.GetDuration(2, TimeUnitType.Day));

// print links among the tasks
Console.WriteLine("Print task links of " + project.TaskLinks.ParentProject.Get(Prj.Name) + " project.");
Console.WriteLine("Task links count: " + project.TaskLinks.Count);
foreach (var link in project.TaskLinks)
{
    Console.WriteLine("From ID = " + link.PredTask.Get(Tsk.Id) + " => To ID = " + link.SuccTask.Get(Tsk.Id));
    Console.WriteLine();
}

// edit link by index access
project.TaskLinks[0].LagFormat = TimeUnitType.Hour;

// remove all task links
List<TaskLink> taskLinks = project.TaskLinks.ToList();
foreach (var link in taskLinks)
{
    project.TaskLinks.Remove(link);
}

See Also