Exemplo n.º 1
0
 private int[] GetLinearFilteredRecords(Range range)
 {
     if (_linearExpression == null)
     {
         int[] resultRecords = new int[range.Count];
         RBTree <int> .RBTreeEnumerator iterator = _index.GetEnumerator(range.Min);
         for (int i = 0; i < range.Count && iterator.MoveNext(); i++)
         {
             resultRecords[i] = iterator.Current;
         }
         return(resultRecords);
     }
     else
     {
         List <int> matchingRecords = new List <int>();
         RBTree <int> .RBTreeEnumerator iterator = _index.GetEnumerator(range.Min);
         for (int i = 0; i < range.Count && iterator.MoveNext(); i++)
         {
             if (AcceptRecord(iterator.Current))
             {
                 matchingRecords.Add(iterator.Current);
             }
         }
         return(matchingRecords.ToArray());
     }
 }