Для столбца 0 или 1 вы сортируете по единственному значению . Все в порядке. В противном случае вы сортируете по последовательности . Что это хотя бы значит? Если у одного AdjustmentErrorCode
есть последовательность CaseDisplayIds
из { 1, 5, 3 }
, а у другого - { 2, 4 }
, что должно стоять на первом месте?
Обратите внимание, что ваша сортировка определенно происходит в вашем .NET-коде, не в базе данных. Вы действительно этого хотите?
Кроме того, я бы предложил, чтобы вместо проверки sortColumnIndex
на каждой итерации вы использовали разные лямбда-выражения:
Func<AdjustmentErrorCodes, object> orderingFunction;
switch (sortColumnIndex)
{
case 0: orderingFunction = a => a.AdjustmentErrorCode; break;
case 1: orderingFunction = a => a.AdjustmentErrorCodeDescription; break;
default: orderingFunction = ...;
}
(Или напишите метод для этого оператора switch, который возвращает значение, и вызовите его с помощью:
var orderingFunction = CreateOrdering(sortColumnIndex);
Таким образом, назначения можно превратить в операторы возврата, и вы можете потерять операторы break;
:)