/// <summary> /// Add an element into the array with a priority. /// Lower priorities will be inserted at the front of the array. /// </summary> /// <param name="obj"></param> /// <param name="priority"></param> /// <returns></returns> public DeletionMarker <T> AddPriority(T obj, int priority) { var dm = new DeletionMarker <T>(obj, priority); AddPriority(dm); return(dm); }
public DeletionMarker <T> Add(T obj) { MaybeResize(); var dm = new DeletionMarker <T>(obj, 0); Data[count++] = dm; return(dm); }
private void MaybeResize() { if (count >= Data.Length) { var narr = new DeletionMarker <T> [Data.Length * 2]; Data.CopyTo(narr, 0); Data = narr; } }
public void AddPriority(DeletionMarker <T> dm) { MaybeResize(); Data.Insert(ref count, dm, NextIndexForPriority(dm.Priority)); }