public IList <int> ToIntervalList(FactsPartsDictionary FactsOfParts, IList <int> facts, bool ensurepartnr = false) { //cover here var items = FactsOfParts.SearchFactsIndexByKey(DictFilterIndexes.ToArray(), facts); foreach (var negativeindex in NegativeDictFilterIndexes) { if (FactsOfParts.ContainsKey(negativeindex)) { items = Utilities.Objects.SortedExcept(items, FactsOfParts[negativeindex]); } } if (ChildQueries.Count > 0) { var result = new IntervalList(); foreach (var childquery in ChildQueries) { result.AddRange(childquery.ToIntervalList(FactsOfParts, items)); } return(result); } return(items); }