/// <summary> /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes /// </summary> /// <param name="types"></param> public DictionaryTrie(IEnumerable <FileType> types) { if (types is null) { ThrowHelpers.FileTypeEnumerableIsNull(); } foreach (var type in types) { if (!(type is null)) { this.Insert(type); } } }
/// <summary> /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes /// </summary> /// <param name="types"></param> public DictionaryTrie(IEnumerable <FileType> types) { if (types is null) { ThrowHelpers.FileTypeEnumerableIsNull(); } foreach (var type in types) { if ((object)type != null) { Insert(type); } } }
/// <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); } } }
/// <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); } } }
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++; }
/// <summary> /// Constructs a LinearCountingAnalyzer using the supplied IEnumerable<FileType> /// </summary> /// <param name="fileTypes"></param> public LinearCounting(IEnumerable <FileType> fileTypes) { if (fileTypes is null) { ThrowHelpers.FileTypeEnumerableIsNull(); } foreach (var fileType in fileTypes) { if (!(fileType is null)) { this.Insert(fileType); } } //types.OrderBy(x => x.HeaderOffset); //todo sort //Array.Sort<FileType>(types, (x,y) => x.HeaderOffset.CompareTo(y.HeaderOffset)); //types = types; }