private bool CheckSortingResult(int[][] sortedArray, IRowSortingType rowSortingType, bool sortOrder) { if (sortedArray.Length == 1) { return(true); } var rowsPriority = new int[sortedArray.Length]; for (int i = 0; i < sortedArray.Length; ++i) { rowsPriority[i] = rowSortingType.RowPriority(sortedArray[i]); } for (int i = 1; i < rowsPriority.Length; ++i) { if (sortOrder) { if (rowsPriority[i - 1] > rowsPriority[i]) { return(false); } } else { if (rowsPriority[i - 1] < rowsPriority[i]) { return(false); } } } return(true); }
/// <summary> /// The method sorts a two-dimensional array by rows. /// </summary> /// <param name="array"> /// Array to sort. /// </param> /// <param name="rowSortingType"> /// Sorting type. /// </param> /// <param name="sortOrder"> /// Sort order. /// </param> /// <exception cref="ArgumentException"> /// Array to sort is null. /// </exception> /// <exception cref="ArgumentNullException"> /// Array to sort length is zero. /// </exception> public static void SortByRows(this int[][] array, IRowSortingType rowSortingType, bool sortOrder) { SortByRowsInputValidation(array); var rowsPriority = new int[array.Length]; for (int i = 0; i < array.Length; ++i) { rowsPriority[i] = rowSortingType.RowPriority(array[i]); } array.SortArrayByPriorityArray(rowsPriority, sortOrder); }