public override bool MoveNext() { if (Index < 0) // enumerator стоит перед первой записью { MetaInfo = (TMetaInfo)((IMarketDataSerializer)Serializer).CreateMetaInfo(_originalMetaInfo.Date); MetaInfo.CopyFrom(_originalMetaInfo); Index = 0; } if (Index >= MetaInfo.Count) { return(false); } if (Index == PartSize) { PartSize += Reader.ReadInt(); } Current = Serializer.MoveNext(this); Previous = Current; if (Index == (PartSize - 1)) { //Reader.AlignReader(); if ((Reader.Offset % 8) != 0) { var shift = ((Reader.Offset / 8) * 8 + 8) - Reader.Offset; Reader.Offset += shift; } } Index++; return(true); }