/// <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 an ArrayBasedTrie from an Enumerable of FileTypes, <see cref="Insert(FileType)"/> to add more definitions /// </summary> /// <param name="types"></param> public LinearTrie(IEnumerable <FileType> types) { if (types is null) { ThrowHelpers.FileTypeEnumerableIsNull(); } this.OffsetNodes[0] = new OffsetNode(0); foreach (var type in types) { if (!(type is null)) { this.Insert(type); } } }
/// <summary> /// Constructs an ArrayBasedTrie from an Enumerable of FileTypes, <see cref="Insert(FileType)"/> to add more definitions /// </summary> /// <param name="types"></param> public LinearTrie(IEnumerable <FileType> types) { if (types is null) { ThrowHelpers.FileTypeEnumerableIsNull(); } OffsetNodes[0] = new OffsetNode(0); foreach (var type in types) { if ((object)type != null) { Insert(type); } } }
/// <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; }