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

◆ FindClosestCandidateIndex()

bool System.Data.Select.FindClosestCandidateIndex ( )
inlineprivate

Definition at line 263 of file Select.cs.

264 {
265 _index = null;
267 bool flag = true;
268 _table._indexesLock.EnterUpgradeableReadLock();
269 try
270 {
272 for (int i = 0; i < count; i++)
273 {
275 if (index.RecordStates != _recordStates || !index.IsSharable)
276 {
277 continue;
278 }
279 int num = CompareClosestCandidateIndexDesc(index._indexFields);
280 if (num > _matchedCandidates || (num == _matchedCandidates && !flag))
281 {
282 _matchedCandidates = num;
283 _index = index;
284 flag = CompareSortIndexDesc(index._indexFields);
285 if (_matchedCandidates == _nCandidates && flag)
286 {
287 return true;
288 }
289 }
290 }
291 }
292 finally
293 {
294 _table._indexesLock.ExitUpgradeableReadLock();
295 }
296 if (_index == null)
297 {
298 return false;
299 }
300 return flag;
301 }
readonly ReaderWriterLockSlim _indexesLock
Definition DataTable.cs:194
readonly List< Index > _indexes
Definition DataTable.cs:76
int _matchedCandidates
Definition Select.cs:43
readonly DataViewRowState _recordStates
Definition Select.cs:23
readonly DataTable _table
Definition Select.cs:19
int CompareClosestCandidateIndexDesc(IndexField[] fields)
Definition Select.cs:244
bool CompareSortIndexDesc(IndexField[] fields)
Definition Select.cs:193

References System.Data.Select._index, System.Data.DataTable._indexes, System.Data.DataTable._indexesLock, System.Data.Select._matchedCandidates, System.Data.Select._nCandidates, System.Data.Select._recordStates, System.Data.Select._table, System.Data.Select.CompareClosestCandidateIndexDesc(), System.Data.Select.CompareSortIndexDesc(), System.count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, and System.index.

Referenced by System.Data.Select.SelectRows().