Ejemplo n.º 1
0
        public IEnumerable <PaEntry> GetAllByLevel(Func <Tkey, int> LevelFunc)
        {
            //throw new Exception("GetAllByLevel dois not implemented in DinamicIndexUnique");
            PaEntry[] dyna = new PaEntry[0];
            if (_unique)
            {
                dyna = keyent.Where(pair => LevelFunc(pair.Key) == 0).Select(pair => pair.Value).ToArray();
            }
            else
            {
                dyna = keyents.Where(pair => LevelFunc(pair.Key) == 0).SelectMany(pair => pair.Value).ToArray();
            }
            if (Table.Count() == 0)
            {
                return(dyna);
            }
            PaEntry ent = Table.Element(0);

            return(dyna.Concat(IndexArray.IndexCell.Root.BinarySearchAll(e =>
            {
                long off = (long)e.Get();
                ent.offset = off;
                Tkey k = KeyProducer(ent.Get());
                return LevelFunc(k);
            })));
        }