private IEnumerable <InternalIByteArrayKeyValuePair> SeekToOffset(int offset, AppendableByteArraySegment lastkey) { var key = lastkey; var value = new ArraySegment <byte>(_data, offset, 0); for (;;) { var currentOffset = value.Offset + value.Count; if (currentOffset >= _restartOffset) { yield break; } ParseEntry(currentOffset, ref key, ref value); yield return(new InternalIByteArrayKeyValuePair(key.Clone(), value)); } }