private void parseSlotArray() { SlotArray = new short[Header.SlotCnt]; for (int i = 0; i < Header.SlotCnt; i++) { SlotArray[i] = BitConverter.ToInt16(RawBytes.ToArray(), RawBytes.Count - i * 2 - 2); } }
private void parseRecords() { Records = new TextRecord[Header.SlotCnt]; int cnt = 0; foreach (short recordOffset in SlotArray) { Records[cnt++] = new TextRecord(ArrayHelper.SliceArray(RawBytes.ToArray(), recordOffset, RawBytes.Count - recordOffset), this); } }
private void parseRecords() { Records = new ClusteredIndexRecord[Header.SlotCnt]; //var offsets = SlotArray.OrderBy(x => x).Select((o, i) => new {o, i}).ToArray(); //var joinedOffsets = from o1 in offsets // join o2 in offsets on o1.i equals o2.i-1 into ps // from p in ps.DefaultIfEmpty() // select new { o1.i,o1.o, length = p?.o - o1.o }; var idx = 0; foreach (var recordOffset in SlotArray) { Records[idx++] = new ClusteredIndexRecord(ArrayHelper.SliceArray(RawBytes.ToArray(), recordOffset, RawBytes.Count - recordOffset), this); } }