/// <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); }
/// <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); } }