public FieldMarshalTableSortComparer(FieldMarshalTable table)
        {
            var rows  = table.GetRows();
            int count = rows.Length;

            _values = new int[count];
            for (int i = 0; i < count; i++)
            {
                _values[i] = rows[i].Parent;
            }
        }
        private void InitializeTables()
        {
            _assemblyTable             = new AssemblyTable(this);
            _assemblyOSTable           = new AssemblyOSTable(this);
            _assemblyProcessorTable    = new AssemblyProcessorTable(this);
            _assemblyRefTable          = new AssemblyRefTable(this);
            _assemblyRefOSTable        = new AssemblyRefOSTable(this);
            _assemblyRefProcessorTable = new AssemblyRefProcessorTable(this);
            _classLayoutTable          = new ClassLayoutTable(this);
            _constantTable             = new ConstantTable(this);
            _customAttributeTable      = new CustomAttributeTable(this);
            _declSecurityTable         = new DeclSecurityTable(this);
            _enclogTable                 = new ENCLogTable(this);
            _encmapTable                 = new ENCMapTable(this);
            _eventTable                  = new EventTable(this);
            _eventMapTable               = new EventMapTable(this);
            _eventPtrTable               = new EventPtrTable(this);
            _exportedTypeTable           = new ExportedTypeTable(this);
            _fieldTable                  = new FieldTable(this);
            _fieldLayoutTable            = new FieldLayoutTable(this);
            _fieldMarshalTable           = new FieldMarshalTable(this);
            _fieldPtrTable               = new FieldPtrTable(this);
            _fieldRVATable               = new FieldRVATable(this);
            _fileTable                   = new FileTable(this);
            _genericParamTable           = new GenericParamTable(this);
            _genericParamConstraintTable = new GenericParamConstraintTable(this);
            _implMapTable                = new ImplMapTable(this);
            _interfaceImplTable          = new InterfaceImplTable(this);
            _manifestResourceTable       = new ManifestResourceTable(this);
            _memberRefTable              = new MemberRefTable(this);
            _methodTable                 = new MethodTable(this);
            _methodImplTable             = new MethodImplTable(this);
            _methodPtrTable              = new MethodPtrTable(this);
            _methodSemanticsTable        = new MethodSemanticsTable(this);
            _methodSpecTable             = new MethodSpecTable(this);
            _moduleTable                 = new ModuleTable(this);
            _moduleRefTable              = new ModuleRefTable(this);
            _nestedClassTable            = new NestedClassTable(this);
            _paramTable                  = new ParamTable(this);
            _paramPtrTable               = new ParamPtrTable(this);
            _propertyTable               = new PropertyTable(this);
            _propertyMapTable            = new PropertyMapTable(this);
            _propertyPtrTable            = new PropertyPtrTable(this);
            _standAloneSigTable          = new StandAloneSigTable(this);
            _typeDefTable                = new TypeDefTable(this);
            _typeRefTable                = new TypeRefTable(this);
            _typeSpecTable               = new TypeSpecTable(this);

            _tables = new MetadataTable[]
            {
                _moduleTable,
                _typeRefTable,
                _typeDefTable,
                _fieldPtrTable,
                _fieldTable,
                _methodPtrTable,
                _methodTable,
                _paramPtrTable,
                _paramTable,
                _interfaceImplTable,
                _memberRefTable,
                _constantTable,
                _customAttributeTable,
                _fieldMarshalTable,
                _declSecurityTable,
                _classLayoutTable,
                _fieldLayoutTable,
                _standAloneSigTable,
                _eventMapTable,
                _eventPtrTable,
                _eventTable,
                _propertyMapTable,
                _propertyPtrTable,
                _propertyTable,
                _methodSemanticsTable,
                _methodImplTable,
                _moduleRefTable,
                _typeSpecTable,
                _implMapTable,
                _fieldRVATable,
                _enclogTable,
                _encmapTable,
                _assemblyTable,
                _assemblyProcessorTable,
                _assemblyOSTable,
                _assemblyRefTable,
                _assemblyRefProcessorTable,
                _assemblyRefOSTable,
                _fileTable,
                _exportedTypeTable,
                _manifestResourceTable,
                _nestedClassTable,
                _genericParamTable,
                _methodSpecTable,
                _genericParamConstraintTable,
            };

            for (int i = 0; i < _tables.Length; i++)
            {
                _tables[i].Initialize();
            }
        }