Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Evaluate()

int System.Data.Select.Evaluate ( int record)
inlineprivate

Definition at line 678 of file Select.cs.

679 {
681 if (dataRow == null)
682 {
683 return 0;
684 }
685 DataRowVersion version = DataRowVersion.Default;
686 if (dataRow._oldRecord == record)
687 {
688 version = DataRowVersion.Original;
689 }
690 else if (dataRow._newRecord == record)
691 {
692 version = DataRowVersion.Current;
693 }
694 else if (dataRow._tempRecord == record)
695 {
696 version = DataRowVersion.Proposed;
697 }
698 IndexField[] indexFields = _index._indexFields;
699 for (int i = 0; i < _matchedCandidates; i++)
700 {
701 ColumnInfo columnInfo = _candidateColumns[indexFields[i].Column.Ordinal];
702 int num = Eval(columnInfo.expr, dataRow, version);
703 if (num != 0)
704 {
705 if (!indexFields[i].IsDescending)
706 {
707 return num;
708 }
709 return -num;
710 }
711 }
712 return 0;
713 }
readonly RecordManager _recordManager
Definition DataTable.cs:74
readonly IndexField[] _indexFields
Definition Index.cs:34
ColumnInfo[] _candidateColumns
Definition Select.cs:39
int Eval(BinaryNode expr, DataRow row, DataRowVersion version)
Definition Select.cs:605
int _matchedCandidates
Definition Select.cs:43
readonly DataTable _table
Definition Select.cs:19

References System.Data.Select._candidateColumns, System.Data.Select._index, System.Data.Index._indexFields, System.Data.Select._matchedCandidates, System.Data.DataTable._recordManager, System.Data.Select._table, and System.Data.Select.Eval().

Referenced by System.Data.Select.FindFirstMatchingRecord(), and System.Data.Select.FindLastMatchingRecord().