/// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public HybridTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            this.OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if (!(type is null))
                {
                    this.Insert(type);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public HybridTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if ((object)type != null)
                {
                    Insert(type);
                }
            }
        }
        public void Insert(FileType fileType)
        {
            if (fileType is null)
            {
                ThrowHelpers.FileTypeArgumentIsNull();
            }

            if (this.typesLength >= this.types.Length)
            {
                var newTypesCount = this.types.Length * 2;
                var newTypes      = new FileType[newTypesCount];
                Array.Copy(this.types, newTypes, this.typesLength);
                this.types = newTypes;
            }

            this.types[this.typesLength] = fileType;
            this.typesLength++;
        }