/// <summary> /// Restores a TimeSeriesStreamCollection from a compressed byte array. /// </summary> public TimeSeriesStreamCollection(byte[] compressedByteArray, int keySize, Func <Stream, TKey> readKeyFunc, TimeSeriesSpan span, int decimalPlaces = 1) : base() { Metrics = new BinaryStreamMetrics(keySize, span.Count, decimalPlaces); _stream = CompressableMemoryStream.FromCompressedByteArray(compressedByteArray); int count = 0; using (var reader = new BinaryReader(_stream, System.Text.Encoding.UTF8, true)) count = reader.ReadInt32(); foreach (var i in Enumerable.Range(0, count)) { _stream.Seek(Metrics.KeyPosition(i), SeekOrigin.Begin); var key = readKeyFunc(_stream); _dict.Add(key, new TimeSeriesStream <T>(_stream, Metrics.TimeseriesPosition(i), span, decimalPlaces)); } }