Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Collections / Generic / ArraySortHelper.cs / 2 / ArraySortHelper.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: ArraySortHelper
**
**
** Purpose: class to sort arrays
**
**
===========================================================*/
namespace System.Collections.Generic {
using System;
using System.Globalization;
using System.Runtime.CompilerServices;
[TypeDependencyAttribute("System.Collections.Generic.GenericArraySortHelper`1")]
internal class ArraySortHelper
{
static ArraySortHelper defaultArraySortHelper;
public static ArraySortHelper Default {
get {
ArraySortHelper sorter = defaultArraySortHelper;
if( sorter != null) {
return sorter;
}
return CreateArraySortHelper();
}
}
private static ArraySortHelper CreateArraySortHelper() {
if (typeof(IComparable).IsAssignableFrom(typeof(T))) {
defaultArraySortHelper = (ArraySortHelper)(typeof(GenericArraySortHelper).TypeHandle.CreateInstanceForAnotherGenericParameter(typeof(T)));
}
else {
defaultArraySortHelper = new ArraySortHelper();
}
return defaultArraySortHelper;
}
public void Sort(T[] items, int index, int length, IComparer comparer) {
Sort