Example #1
0
        /// <summary>
        /// Retrieves the dictionary information in a format that can be persisted for
        /// later use in creating a new dictionary.
        /// </summary>
        public static byte[] GetHeaderByteArray(CharacterFrequencyDictionary dict)
        {
            var dictKeys   = dict.GetKeysAsByteArray();
            var dictValues = dict.GetValuesAsByteArray();

            var keyLength  = BitConverter.GetBytes(dictKeys.Length);
            var dictLength = BitConverter.GetBytes(dictValues.Length);

            var headerLength = dictKeys.Length + dictValues.Length + keyLength.Length + dictLength.Length;

            var fileHeader = new byte[headerLength];

            int len = 0;

            keyLength.CopyTo(fileHeader, len);
            len += keyLength.Length;

            dictLength.CopyTo(fileHeader, len);
            len += dictLength.Length;

            dictKeys.CopyTo(fileHeader, len);
            len += dictKeys.Length;

            dictValues.CopyTo(fileHeader, len);
            return(fileHeader);
        }