/// <summary> /// Sort jagged array due condition. /// </summary> /// <param name="keyValues">Key values of jagged array.</param> /// <param name="array">Jagged array.</param> /// <param name="comparator">Compare our element in the array.</param> private static void SortJaggedArray(int[][] array, DelegateType.Comparer comparator) { for (int i = 0; i < array.Length - 1; i++) { for (int j = 0; j < array.Length - i - 1; j++) { if (comparator(array[j], array[j + 1]) > 0) { Swap(ref array[j], ref array[j + 1]); } } } }
/// <summary> /// Constructor, which has comparer delegate. /// </summary> /// <param name="comparer"></param> public DelegateAdapter(DelegateType.Comparer comparer) { this._comparer = comparer; }
/// <summary> /// Sort the jagged array. /// </summary> /// <param name="array">Input array.</param> /// <param name="delegateComparer">The delegate, which contain method to compare.</param> public static void Execute(int[][] array, DelegateType.Comparer delegateComparer) { SortJaggedArray(array, delegateComparer); }