System.Data.Select.Evaluate C# (CSharp) Метод

Evaluate() приватный Метод

private Evaluate ( int record ) : int
record int
Результат int
        private int Evaluate(int record)
        {
            DataRow row = _table._recordManager[record];

            if (row == null)
                return 0;

            DataRowVersion version = DataRowVersion.Default;
            if (row._oldRecord == record)
            {
                version = DataRowVersion.Original;
            }
            else if (row._newRecord == record)
            {
                version = DataRowVersion.Current;
            }
            else if (row._tempRecord == record)
            {
                version = DataRowVersion.Proposed;
            }

            IndexField[] fields = _index._indexFields;
            for (int i = 0; i < _matchedCandidates; i++)
            {
                int columnOrdinal = fields[i].Column.Ordinal;
                Debug.Assert(_candidateColumns[columnOrdinal] != null, "How come this is not a candidate column");
                Debug.Assert(_candidateColumns[columnOrdinal].expr != null, "How come there is no associated expression");
                int c = Eval(_candidateColumns[columnOrdinal].expr, row, version);
                if (c != 0)
                    return fields[i].IsDescending ? -c : c;
            }
            return 0;
        }