private int FindFirstMatchingRecord()
{
int rec = -1;
int lo = 0;
int hi = _index.RecordCount - 1;
while (lo <= hi)
{
int i = lo + hi >> 1;
int recNo = _index.GetRecord(i);
int c = Evaluate(recNo);
if (c == 0) { rec = i; }
if (c < 0) lo = i + 1;
else hi = i - 1;
}
return rec;
}