Ejemplo n.º 1
0
        public object RemoveAtIndex(int index)
        {
            IndexedLink findResult = FindAtIndex(index);
            object      result     = findResult.Value;

            RemoveLink(findResult);
            return(result);
        }
Ejemplo n.º 2
0
        public Link InsertAtIndex(int index, object value)
        {
            if (index == 0)
            {
                return(InsertHead(value));
            }
            if (index == Count)
            {
                return(InsertTail(value));
            }
            IndexedLink findResult = FindAtIndex(index);
            Link        result     = InsertAfter(findResult.RingLink.Previous, value);

            if (index == 0)
            {
                Head = findResult.RingLink.Previous;
            }
            return(result);
        }
Ejemplo n.º 3
0
        public void InsertRangeAtIndex(int index, IEnumerable values)
        {
            if (index == Count)
            {
                foreach (object value in values)
                {
                    InsertTail(value);
                }
                return;
            }
            IndexedLink findResult = FindAtIndex(index);
            Link        tail       = (index == 0) ? Head.Previous : null;
            Link        link       = findResult.RingLink.Previous;

            foreach (object value in values)
            {
                link = InsertAfter(link, value);
            }
            if (tail != null)
            {
                Head = tail.Next;
            }
        }