コード例 #1
0
 private void EnsureLoaded()
 {
     lock (this)
     {
         if (_array != null)
         {
             return;
         }
         _array = new T[Length];
         BspFile.ReadLumpValues(LumpType, 0, _array, 0, Length);
     }
 }
コード例 #2
0
            private T GetSingle(int index)
            {
                if (_array != null)
                {
                    return(_array[index]);
                }
                if (_sSingleArray == null)
                {
                    _sSingleArray = new T[1];
                }

                BspFile.ReadLumpValues(LumpType, index, _sSingleArray, 0, 1);
                return(_sSingleArray[0]);
            }
コード例 #3
0
            public IEnumerable <T> Range(int start, int count)
            {
                if (_array != null)
                {
                    return(_array.Skip(start).Take(count));
                }
                if (start + count > Length)
                {
                    count = Length - start;
                }
                if (count <= 0)
                {
                    return(Enumerable.Empty <T>());
                }

                var array = new T[count];

                BspFile.ReadLumpValues(LumpType, start, array, 0, count);
                return(array);
            }