/// <summary> /// Finds all rows owned by <paramref name="key"/> in table <paramref name="tableSource"/> /// whose index is <paramref name="keyColIndex"/>. Should be called if <paramref name="tableSource"/> /// could be unsorted. /// </summary> /// <param name="tableSource">Table to search</param> /// <param name="keyColIndex">Key column index</param> /// <param name="key">Key</param> /// <returns>A <see cref="RidList"/> instance</returns> protected virtual RidList FindAllRowsUnsorted(MDTable tableSource, int keyColIndex, uint key) => FindAllRows(tableSource, keyColIndex, key);
/// <summary> /// Binary searches the table for a <c>rid</c> whose key column at index /// <paramref name="keyColIndex"/> is equal to <paramref name="key"/>. /// </summary> /// <param name="tableSource">Table to search</param> /// <param name="keyColIndex">Key column index</param> /// <param name="key">Key</param> /// <returns>The <c>rid</c> of the found row, or 0 if none found</returns> protected abstract uint BinarySearch(MDTable tableSource, int keyColIndex, uint key);
internal bool TryReadColumn24(MDTable table, uint rid, int colIndex, out uint value) => TryReadColumn24(table, rid, table.TableInfo.Columns[colIndex], out value);
/// <summary> /// Constructor /// </summary> /// <param name="mdTable">The MD table</param> /// <param name="keyColIndex">Index of key column</param> public SortedTable(MDTable mdTable, int keyColIndex) { InitializeKeys(mdTable, keyColIndex); Array.Sort(rows); }
/// <summary> /// Reads a column /// </summary> /// <param name="table">The table</param> /// <param name="rid">Row ID</param> /// <param name="colIndex">Column index in <paramref name="table"/></param> /// <param name="value">Result is put here or 0 if we return <c>false</c></param> /// <returns><c>true</c> if we could read the column, <c>false</c> otherwise</returns> public bool TryReadColumn(MDTable table, uint rid, int colIndex, out uint value) => TryReadColumn(table, rid, table.TableInfo.Columns[colIndex], out value);