예제 #1
0
        public void Remove(int index)
        {
            var current = First;

            while (current.Next != null)
            {
                if (index == 0)
                {
                    current = current.Next;
                    First   = current;
                    while (current.Next != null)
                    {
                        current.Index = current.Index - 1;
                        current       = current.Next;
                        if (current.Next == null)
                        {
                            current.Index = current.Index - 1;
                        }
                    }
                    break;
                }
                if (current.Next == null)
                {
                    while (current.Next != null)
                    {
                        //Console.WriteLine("This item has been deleted: " + current.Next.Next.Value);
                        current = current.Next;
                    }
                    current.Next = null;
                    break;
                }
                else if (current.Index == index - 1)
                {
                    current.Next = current.Next.Next;
                    break;
                }
                else
                {
                    current = current.Next;
                }
            }

            while (current.Next != null)
            {
                if ((current.Next.Index - current.Index) == 2)
                {
                    current.Next.Index = current.Next.Index - 1;
                }
                current = current.Next;
            }
        }
예제 #2
0
 public void Add(IforItem item)
 {
     if (First == null)
     {
         First      = item;
         item.Index = 0;
     }
     else
     {
         var current = First;
         while (current.Next != null)
         {
             current = current.Next;
         }
         item.Index   = current.Index + 1;
         current.Next = item;
     }
 }