private uint ResolveEndOfMethodList(int idxInTableRows)
        {
            var             typeDefRows   = this.TableRows[MetaDataTableType.TypeDef];
            var             methodDefRows = this.TableRows[MetaDataTableType.MethodDef];
            TypeDefTableRow row           = (TypeDefTableRow)typeDefRows[idxInTableRows];

            //Console.WriteLine($"{idxInTableRows + 1 >= typeDefRows.Count}: {(uint)methodDefRows.Count - 1} {((TypeDefTableRow) typeDefRows[idxInTableRows + 1])?.MethodList}");
            return(idxInTableRows + 1 >= typeDefRows.Count
                ? (uint)methodDefRows.Count - 1
                : ((TypeDefTableRow)typeDefRows[idxInTableRows + 1]).MethodList);
        }
        public List <MethodTableRow> GetMethodTableRowsFromTypeDef(TypeDefTableRow typeDef)
        {
            int posInTableRows = this.TableRows[MetaDataTableType.TypeDef].FindIndex((x) => x == typeDef);

            List <MethodTableRow> methodTableRows = new List <MethodTableRow>();
            List <TableRow>       methodRows      = this.TableRows[MetaDataTableType.MethodDef];

            int currentOffset   = typeDef.MethodList - 1;
            int endOfList       = (int)ResolveEndOfMethodList(posInTableRows) - 1;
            int deltaMethodList = endOfList - currentOffset;

            for (int i = 0; i < deltaMethodList; i++)
            {
                MethodTableRow methodTableRow = (MethodTableRow)methodRows[currentOffset];
                methodTableRows.Add(methodTableRow);
                currentOffset++;
            }

            return(methodTableRows);
        }