private void _refreshOptimizationList(int selectObjectWithId) { listBoxOptimizations.Items.Clear(); navMasterPath.resetPositions(); PNavigator navMasterItems = new PNavigator(_data.Root, navMasterPath); if (navMasterItems.Pointer.Id != _data.Root.Id) { ListBox.ObjectCollection items = new ListBox.ObjectCollection(listBoxOptimizations); int selectIndex = -1; do { IPObject obj = navMasterItems.Pointer; if (obj != null) { RMasterItem item = new RMasterItem(); item.Title = formatMasterItem(obj); item.Object = obj; items.Add(item); if (obj.Id == selectObjectWithId) selectIndex = items.Count - 1; } } while (navMasterItems.Navigate(0, NAV_DIRECTION.DOWN, false) != null); listBoxOptimizations.BeginUpdate(); listBoxOptimizations.Items.Clear(); listBoxOptimizations.Items.AddRange(items); if (selectIndex >= 0) listBoxOptimizations.SelectedIndex = selectIndex; listBoxOptimizations.EndUpdate(); } //listBoxOptimizations.EndUpdate(); }
private ListBox.ObjectCollection quicksort(ListBox.ObjectCollection list) { ListBox.ObjectCollection sorted = new ListBox.ObjectCollection(new ListBox()); sorted.AddRange(list); if(sorted.Count <= 1) return sorted; int random = randomNumberGenerator.Next(0, sorted.Count - 1); string pivot = (string)list[random]; sorted.RemoveAt(random); ListBox.ObjectCollection lessThan = new ListBox.ObjectCollection(new ListBox()); ListBox.ObjectCollection greaterThan = new ListBox.ObjectCollection(new ListBox()); for(int i = 0; i < sorted.Count; ++i) sortItem(sorted[i], pivot, lessThan, greaterThan); sorted = quicksort(lessThan); sorted.Add(pivot); sorted.AddRange(quicksort(greaterThan)); return sorted; }