internal BTreeLeafComp(long transactionId, BTreeLeafMember[] newKeyValues) { Debug.Assert(newKeyValues.Length > 0 && newKeyValues.Length <= MaxMembers); TransactionId = transactionId; _keyBytes = new byte[newKeyValues.Sum(m => m.Key.Length)]; _keyvalues = new Member[newKeyValues.Length]; ushort ofs = 0; for (var i = 0; i < newKeyValues.Length; i++) { _keyvalues[i] = new Member { KeyOffset = ofs, KeyLength = (ushort)newKeyValues[i].Key.Length, Value = newKeyValues[i].Value }; Array.Copy(newKeyValues[i].Key, 0, _keyBytes, ofs, _keyvalues[i].KeyLength); ofs += _keyvalues[i].KeyLength; } }