OutlineMaskCollection class

Represents a collection of OutlineMask objects.

public class OutlineMaskCollection : IList<OutlineMask>


Count { get; }Gets the number of elements contained in this collection.
IsReadOnly { get; }Gets a value indicating whether this collection is read-only; otherwise, false.
Item { get; set; }Returns or sets the element at the specified index.


Add(OutlineMask)Adds the specified item to this collection.
Clear()Removes all items from this collection.
Contains(OutlineMask)Returns true if the specified item is found in this collection; otherwise, false.
CopyTo(OutlineMask[], int)Copies the elements of this collection to the specified array, starting at the specified array index.
GetEnumerator()Returns an enumerator for this collection.
IndexOf(OutlineMask)Determines the index of the specified item in this collection.
Insert(int, OutlineMask)Inserts the specified item at the specified index.
Remove(OutlineMask)Removes the first occurrence of a specific object from this collection.
RemoveAt(int)Removes an item at the specified index.


Shows how to work with outline mask collections.

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

var outline = project.OutlineCodes[0];

// clear outline masks
if (outline.Masks.Count > 0)
    if (!outline.Masks.IsReadOnly)

var mask = new OutlineMask();
mask.Type = MaskType.Characters;
var maskWrong = new OutlineMask();
maskWrong.Type = MaskType.Null;


// insert a wrong mask 
outline.Masks.Insert(0, maskWrong);

// edit the mask by using index access of collection
var idx = outline.Masks.IndexOf(mask);
outline.Masks[idx].Length = 2;

// remove a wrong mask by index
var idxOfWrong = outline.Masks.IndexOf(maskWrong);

// iterate over masks
foreach (var outlineMask in outline.Masks)
    Console.WriteLine("Length: " + outlineMask.Length);
    Console.WriteLine("Level: " + outlineMask.Level);
    Console.WriteLine("Separator: " + outlineMask.Separator);
    Console.WriteLine("Type: " + outlineMask.Type);

var otherProject = new Project(DataDir + "OutlineValues2010.mpp");

var otherOutline = otherProject.OutlineCodes[0];

var masks = new OutlineMask[outline.Masks.Count];
outline.Masks.CopyTo(masks, 0);

foreach (var maskToAdd in masks)
    if (!otherOutline.Masks.Contains(maskToAdd))

See Also