internal C.MultiLevelStringCache ToMultiLevelStringCache()
        {
            C.MultiLevelStringCache mlsc = new C.MultiLevelStringCache();
            mlsc.PointCount = new C.PointCount() { Val = this.PointCount };

            C.Level lvl;
            int i, j;
            for (i = 0; i < this.Levels.Count; ++i)
            {
                lvl = new C.Level();
                for (j = 0; j < this.Levels[i].Points.Count; ++j)
                {
                    lvl.Append(this.Levels[i].Points[j].ToStringPoint());
                }
                mlsc.Append(lvl);
            }

            return mlsc;
        }
        internal C.MultiLevelStringCache ToMultiLevelStringCache()
        {
            C.MultiLevelStringCache mlsc = new C.MultiLevelStringCache();
            mlsc.PointCount = new C.PointCount()
            {
                Val = this.PointCount
            };

            C.Level lvl;
            int     i, j;

            for (i = 0; i < this.Levels.Count; ++i)
            {
                lvl = new C.Level();
                for (j = 0; j < this.Levels[i].Points.Count; ++j)
                {
                    lvl.Append(this.Levels[i].Points[j].ToStringPoint());
                }
                mlsc.Append(lvl);
            }

            return(mlsc);
        }