Во-первых, ваш пользовательский тип (T) должна иметь порядок сортировки
Либо T является встроенный в тип номера, как INT, двойной и т.д., что есть «естественный» порядок сортировки; или вы должны определить/закодировать его в свой собственный класс.
Возможно, существует некоторое свойство класса или комбинация свойств, которые являются одним из встроенных типов, которые вы можете использовать для определения порядка сортировки для своего пользовательского класса.
Алфавитные символы имеют «естественный» порядок сортировки. Имейте в виду, что порядок сортировки верхних регистров данной буквы не является последовательным. Когда дело доходит до строк, если верхний/нижний регистр не является существенным (для сортировки), то перед сравнением преобразовать строки в нижние (или верхние, на самом деле не имеющие значения).
Любые перечисления, которые вы пишете, имеют порядок сортировки, потому что они являются фундаментальными целыми числами.
CompareTo() определяет порядок сортировки для пользовательского класса
This method является «каучук встречает дороги» черновой код, который решает порядок два сравниваемых объектов. Как работает, это то, что вам нужно.
Об IPQueues класса
массив в качестве внутренней коллекции не кажется хорошей идеей, так как размер массива фиксируется. .NET имеет Queue class; может ли это работать на вас?
Любопытно узнать, что произойдет, если я не укажу 'где T: IComparable' –
Nemo
@Nemo Без ограничения компилятор скажет вам, что 'items [i]' не имеет метода, называемого 'CompareTo'. – dasblinkenlight