// public static JobHandle Sort<T>(NativeArray<T> array, JobHandle parentHandle) // where T : unmanaged, IComparable<T> { // return NativeSortExtension.SortJob(array, parentHandle); // } private static JobHandle MergeSort <T>(NativeArray <T> array, SortRange range, JobHandle parentHandle) where T : unmanaged, IComparable <T> { if (range.Length <= QUICKSORT_THRESHOLD_LENGTH) { // Use quicksort return(new QuicksortJob <T>() { array = array, left = range.left, right = range.right }.Schedule(parentHandle)); } int middle = range.Middle; SortRange left = new SortRange(range.left, middle); JobHandle leftHandle = MergeSort(array, left, parentHandle); SortRange right = new SortRange(middle + 1, range.right); JobHandle rightHandle = MergeSort(array, right, parentHandle); JobHandle combined = JobHandle.CombineDependencies(leftHandle, rightHandle); return(new Merge <T>() { array = array, first = left, second = right }.Schedule(combined)); }
public void RemoveRange(int Index) { int num1; ArrayList list1 = new ArrayList(); for (SortRange range1 = this.topRange; range1.Ranges.FindLast(Index, out num1, this.lineHitTest); range1 = (SortRange)range1.Ranges[num1]) { if (range1.Index >= 0) { list1.Add(range1.Index); } } if (list1.Count > 0) { this.BeginUpdate(); try { for (int num2 = list1.Count - 1; num2 >= 0; num2--) { this.RemoveAt((int)list1[num2]); } } finally { this.EndUpdate(); } } }
protected int FindRangeIndex(int Index, IComparer Comparer) { int num2; SortRange range1 = this.topRange; int num1 = -1; while (range1.Ranges.FindLast(Index, out num2, Comparer)) { range1 = (SortRange)range1.Ranges[num2]; num1 = range1.Index; } return(num1); }
protected IRange FindRange(int Index, IComparer Comparer) { int num1; SortRange range1 = this.topRange; IRange range2 = null; while (range1.Ranges.FindLast(Index, out num1, Comparer)) { range1 = (SortRange)range1.Ranges[num1]; range2 = range1.Range; } return(range2); }
public int GetRanges(IList Ranges, int Index) { int num1; Ranges.Clear(); SortRange range1 = this.topRange; while (range1.Ranges.FindLast(Index, out num1, this.lineHitTest)) { range1 = (SortRange)range1.Ranges[num1]; if (range1.Range != null) { Ranges.Add(range1.Range); } } return(Ranges.Count); }
// Module to sort data in Descending order void Descending_Sort() { // Accessing a worksheet that is currently active Worksheet sheet = gridDesktop1.GetActiveWorksheet(); // Creating SortRange object SortRange sr = new SortRange(sheet, range.StartRow, range.StartColumn, range.EndRow - range.StartRow + 1, range.EndColumn - range.StartColumn + 1, SortOrientation.SortTopToBottom, true); // Sorting data in the specified column in descending order sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Descending); // Redrawing cells of the Grid gridDesktop1.Invalidate(); }
// Module to sort data in Descending order void Descending_Sort() { // ExStart:DescendingSort // Accessing a worksheet that is currently active Worksheet sheet = gridDesktop1.GetActiveWorksheet(); // Creating SortRange object SortRange sr = new SortRange(sheet, range.StartRow, range.StartColumn, range.EndRow - range.StartRow + 1, range.EndColumn - range.StartColumn + 1, SortOrientation.SortTopToBottom, true); // Sorting data in the specified column in descending order sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Descending); // Redrawing cells of the Grid gridDesktop1.Invalidate(); // ExEnd:DescendingSort }
protected void SortLevels() { this.topRange.Clear(); ArrayList list1 = new ArrayList(); SortRange range2 = this.topRange; for (int num1 = 0; num1 < this.Count; num1++) { IRange range3 = (IRange)this[num1]; SortRange range1 = new SortRange(range3, num1); while ((list1.Count > 0) && !range2.Contains(range3)) { range2 = (SortRange)list1[list1.Count - 1]; list1.RemoveAt(list1.Count - 1); } list1.Add(range2); range2.Add(range1); range2 = range1; } }