System.Data.DataTable.RemoveRecordFromIndexes C# (CSharp) Method

RemoveRecordFromIndexes() private method

private RemoveRecordFromIndexes ( DataRow row, DataRowVersion version ) : int[]
row DataRow
version DataRowVersion
return int[]
        internal int[] RemoveRecordFromIndexes(DataRow row, DataRowVersion version)
        {
            int indexCount = LiveIndexes.Count;
            int[] positionIndexes = new int[indexCount];

            int recordNo = row.GetRecordFromVersion(version);
            DataViewRowState states = row.GetRecordState(recordNo);

            while (--indexCount >= 0)
            {
                if (row.HasVersion(version) && ((states & _indexes[indexCount].RecordStates) != DataViewRowState.None))
                {
                    int index = _indexes[indexCount].GetIndex(recordNo);
                    if (index > -1)
                    {
                        positionIndexes[indexCount] = index;
                        _indexes[indexCount].DeleteRecordFromIndex(index); // this will delete the record from index and MUSt not fire event
                    }
                    else
                    {
                        positionIndexes[indexCount] = -1; // this means record was not in index
                    }
                }
                else
                {
                    positionIndexes[indexCount] = -1; // this means record was not in index
                }
            }
            return positionIndexes;
        }
DataTable