Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        public DeletionMarker <T> Add(T obj)
        {
            MaybeResize();
            var dm = new DeletionMarker <T>(obj, 0);

            Data[count++] = dm;
            return(dm);
        }
Beispiel #3
0
 private void MaybeResize()
 {
     if (count >= Data.Length)
     {
         var narr = new DeletionMarker <T> [Data.Length * 2];
         Data.CopyTo(narr, 0);
         Data = narr;
     }
 }
Beispiel #4
0
 public void AddPriority(DeletionMarker <T> dm)
 {
     MaybeResize();
     Data.Insert(ref count, dm, NextIndexForPriority(dm.Priority));
 }