public static BTree ToBTree(this PxEntry elementsEntry, string path, Func <object, PxEntry, int> elementsComparer, Func <object, object> keySelector, bool editable)
        {
            var newTree = new BTree(((PTypeSequence)elementsEntry.Typ).ElementType, elementsComparer, path, readOnly: false);

            newTree.Fill(elementsEntry, keySelector, editable);
            return(newTree);
        }
        public static BTree ToBTree(this IEnumerable <object> elementsEntry, PType pTypeOfElement, string path,
                                    Func <object, PxEntry, int> elementsComparer, Func <object, object> keySelector, bool editable)
        {
            var newTree = new BTree(pTypeOfElement, elementsComparer, path, readOnly: false);

            newTree.Fill(elementsEntry, keySelector, editable);
            return(newTree);
        }
Exemple #3
0
        private static BTree TestBTreeFill(IEnumerable <object[]> query, PTypeRecord ptElement, string path,
                                           Func <object, PxEntry, int> edepth)
        {
            PxCell elementsCell = new PxCell(new PTypeSequence(ptElement), path + "elements", false);

            elementsCell.Fill2(query);
            var tt0 = DateTime.Now;

            var treeFromQuery = new BTree(ptElement, edepth, path + "TreeFromEntree.pxc", readOnly: false);

            treeFromQuery.Fill(elementsCell.Root, o => ((object[])o)[0], false);
            Console.WriteLine("tree fill reading entry createtd,duration={0}", (DateTime.Now - tt0).Ticks / 10000L);
            tt0 = DateTime.Now;
            // Иcпытание на "предельные" характеристики по скорости ввода данных. Данные сортируются, а потом выстраивается в
            // оперативной памяти структурный объект, соответствующий синтаксису и семантике введенного бинарного дерева.
            // Потом объект вводится в ячейку и испытывается.
            // На моем домашнем компьютере - 130 мс.
            TestSearch(treeFromQuery, "Марчук Александр Гурьевич");
            Console.WriteLine("======TestSearch ok. duration=" + (DateTime.Now - tt0).Ticks / 10000L);
            Console.WriteLine();
            elementsCell.Close();
            return(treeFromQuery);
        }