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); }
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); }