2015-05-07 2 views
0

У меня есть List из Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity, который мне нужно отсортировать. Хотя List предоставляет мне метод Sort(), DynamicTableEntity не имеет компаратора по умолчанию. Поскольку это класс sealed, я не могу создать свой собственный.Как отсортировать список <DynamicTableEntity> запечатанный класс

Я хочу сортировать по DynamicTableEntity.RowKey.

Что было бы самым эффективным способом сортировки этого списка? Должен ли я использовать собственный метод сортировки, или я должен попытаться использовать какой-то запрос Linq, или есть что-то, что мне не хватает?

+0

Попробуйте использовать метод расширения, который будет полезен –

+3

Не можете ли вы использовать переопределение сортировки, которое принимает 'IComparer ' или делегат' Comparison '? https://msdn.microsoft.com/en-us/library/w56d4y5z(v=vs.110).aspx – Gimly

+0

Звучит знакомо. Я посмотрю на это, не знаю, как это сделать, спасибо. – Ivan

ответ

2

Вы должны иметь возможность использовать переопределение Sort, у которого есть делегат Comparison<T>.

Нечто подобное:

entities.Sort((x,y) => /*Code to compare your two entities */); 

Зная, что делегат должен возвращать int со следующим правилом:

  • -1, если первый элемент должен быть перед второй (х < у)
  • 0 если они равны
  • 1 если первый элемент должен быть после второго (x> y)

Простые типы уже реализуют метод CompareTo, который вы, вероятно, сможете использовать.

Смежные вопросы