Example #1
0
        static void SortImpl(Array keys, Array?items, int index, int length, IComparer comparer)
        {
            /* TODO: CoreCLR optimizes this case via an internal call
             * if (comparer == Comparer.Default)
             * {
             *      bool r = TrySZSort(keys, items, index, index + length - 1);
             *      if (r)
             *              return;
             * }*/

            object[]? objKeys  = keys as object[];
            object[]? objItems = null;
            if (objKeys != null)
            {
                objItems = items as object[];
            }
            if (objKeys != null && (items == null || objItems != null))
            {
                SorterObjectArray sorter = new SorterObjectArray(objKeys, objItems, comparer);
                sorter.Sort(index, length);
            }
            else
            {
                SorterGenericArray sorter = new SorterGenericArray(keys, items, comparer);
                sorter.Sort(index, length);
            }
        }
Example #2
0
        static void SortImpl(Array keys, Array items, int index, int length, IComparer comparer)
        {
            Object[] objKeys  = keys as Object[];
            Object[] objItems = null;
            if (objKeys != null)
            {
                objItems = items as Object[];
            }

            if (objKeys != null && (items == null || objItems != null))
            {
                SorterObjectArray sorter = new SorterObjectArray(objKeys, objItems, comparer);
                sorter.Sort(index, length);
            }
            else
            {
                SorterGenericArray sorter = new SorterGenericArray(keys, items, comparer);
                sorter.Sort(index, length);
            }
        }