예제 #1
0
        public void RemoveAt(int pos)
        {
            MyArrayElement posElm = GetElementAt(pos);

            if (posElm != null)
            {
                MyArrayElement before = posElm.Before;
                MyArrayElement next   = posElm.Next;

                if (before == null)
                {
                    m_StartElement = next;
                }
                else
                {
                    before.Next = next;
                }
                if (next == null)
                {
                    m_LastElement = before;
                }
                else
                {
                    next.Before = before;
                }
                m_Count--;
            }
        }
예제 #2
0
        public object Set(int pos, object Cont)
        {
            object         retObj = null;
            MyArrayElement posElm = GetElementAt(pos);

            if (posElm != null)
            {
                posElm.Content = Cont;
            }
            return(retObj);
        }
예제 #3
0
        private MyArrayElement GetElementAt(int pos)
        {
            MyArrayElement posElement = null;

            if (pos >= 0 && pos < m_Count)
            {
                posElement = m_StartElement;
                for (int i = 0; i < pos; i++)
                {
                    posElement = posElement.Next;
                }
            }
            return(posElement);
        }
예제 #4
0
        public void Add(object Cont)
        {
            MyArrayElement neuCont = new MyArrayElement(m_LastElement, null, Cont);

            if (m_StartElement == null)
            {
                m_StartElement = neuCont;
                m_LastElement  = neuCont;
            }
            else
            {
                m_LastElement.Next = neuCont;
                m_LastElement      = neuCont;
            }
            m_Count++;
        }
예제 #5
0
 public object[] ToArray(Type objTyp)
 {
     object[] objArr = null;
     if (m_Count > 0)
     {
         objArr = new object[m_Count];
         int            cnt        = 0;
         MyArrayElement posElement = m_StartElement;
         while (posElement != null && cnt < m_Count)
         {
             if (posElement.Content != null)
             {
                 objArr[cnt] = posElement.Content;
                 cnt++;
             }
         }
     }
     return(objArr);
 }
예제 #6
0
 public void Clear()
 {
     m_StartElement = null;
     m_LastElement  = null;
     m_Count        = 0;
 }
예제 #7
0
 internal MyArrayElement(MyArrayElement before, MyArrayElement next, object Cont)
 {
     m_Next    = next;
     m_Before  = before;
     m_Content = Cont;
 }