public StringList(IPointerTable pointerTable, IStringConverter stringConverter, int maxSize, int capacity) : base(capacity) { _pointerTable = pointerTable; _maxSize = maxSize; _stringConverter = stringConverter; var stringTableStart = pointerTable.Min(p => p.Offset); _currentSize = _pointerTable.Max(p => _stringConverter.GetLength(p) + p.Offset - stringTableStart); }