public bool Read(DBHeader counterpart, DBEntry dbentry) { WDB6CounterPart = counterpart as WDB6; if (WDB6CounterPart == null) { return(false); } var entries = Entries.Where(x => (x.Locale == counterpart.Locale || x.Locale == 0) && x.TableHash == counterpart.TableHash); if (entries.Any()) { OffsetLengths = entries.Select(x => (int)x.Size + 4).ToArray(); TableStructure = WDB6CounterPart.TableStructure; Flags = WDB6CounterPart.Flags; FieldStructure = WDB6CounterPart.FieldStructure; RecordCount = (uint)entries.Count(); dbentry.LoadTableStructure(); IEnumerable <byte> Data = new byte[0]; foreach (var e in entries) { Data = Data.Concat(BitConverter.GetBytes(e.RowId)).Concat(e.Data); } using (MemoryStream ms = new MemoryStream(Data.ToArray())) using (BinaryReader br = new BinaryReader(ms)) new DBReader().ReadIntoTable(ref dbentry, br, new Dictionary <int, string>()); return(true); } return(false); }