示例#1
0
 /// <summary>
 /// 获取数组
 /// </summary>
 /// <typeparam name="arrayType"></typeparam>
 /// <param name="array"></param>
 internal void GetArraySkip <arrayType>(ref PageArray <valueType, arrayType> array)
 {
     if (Left != null)
     {
         int count = Left.Count;
         if (count > array.SkipCount)
         {
             Left.GetArraySkip(ref array);
             if (!array.IsArray && !array.Add(Value))
             {
                 Right.getArray(ref array);
             }
             return;
         }
         array.SkipCount -= count;
     }
     if (array.SkipCount == 0)
     {
         if (!array.Add(Value))
         {
             Right.getArray(ref array);
         }
         return;
     }
     --array.SkipCount;
     Right.GetArraySkip(ref array);
 }
示例#2
0
 /// <summary>
 /// 获取数组
 /// </summary>
 /// <typeparam name="arrayType"></typeparam>
 /// <param name="array"></param>
 private void getArray <arrayType>(ref PageArray <valueType, arrayType> array)
 {
     if (Left != null)
     {
         Left.getArray(ref array);
         if (array.IsArray)
         {
             return;
         }
     }
     if (!array.Add(Value))
     {
         Right.getArray(ref array);
     }
 }