public bool MoveNext()
            {
                var count = m_Property.Count(m_Container);

                if (m_Index >= 0 && m_Index < count)
                {
                    Current = m_Property.GetAt(m_Container, m_Index);
                    m_Index++;
                    return(true);
                }

                m_Index = count + 1;
                Current = default(TValue);

                return(false);
            }
 public TValue this[int index]
 {
     get { return(m_Property.GetAt(m_Container, index)); }
     set { m_Property.SetAt(m_Container, index, value); }
 }