コード例 #1
0
        private List <T> GetRecords <T>(ColumnIndex currentIndex, string[] keys) where T : QuarterlyDatabaseRecord, new()
        {
            var compositeKey = new StringBuilder();

            foreach (var currentKey in keys)
            {
                compositeKey.Append(currentKey);
            }
            var matchingRecords = new List <T>();
            var offsets         = currentIndex.GetOffsets(compositeKey.ToString());

            if (offsets != null)
            {
                foreach (var currentOffset in offsets)
                {
                    reader.BaseStream.Position = currentOffset;
                    reader.DiscardBufferedData();
                    var line      = reader.ReadLine();
                    var newRecord = new T();
                    newRecord.Populate(line);
                    matchingRecords.Add(newRecord);
                }
            }
            return(matchingRecords);
        }