Преобразовать LINQ orderby для сортировки списка на месте

В настоящее время я сортирую список, используя LINQ to objects, затем выполняю ToList () в результатах:

var SortedPossibleMoveLocations = (from PML in PossibleMoveLocations
                                   orderby Randomiser.Next()
                                   orderby IsSameType(PML) ? (_Owner[PML] as TileFlowing).UnitsWithin : 0
                                   orderby PossibleMoveLocationOrdering(PML)
                                   select PML).ToList();

Я хочу преобразовать это, чтобы выполнить сортировку на месте, я предполагаю, используя метод List .Sort () . Если бы я только заказывал Тем не менее, я знаю, как это сделать, поскольку я заказываю по PossibleMoveLocationOrdering (который возвращает int ), а затем по IsSameType (PML)? ( _Owner [PML] как TileFlowing) .UnitsWithin: 0 , который оценивается как [111 31946] int , затем с помощью Randomiser.Next () (который возвращает случайное целое число), я не знаю, как это сделать.

Вопрос: Как мне написать функция сравнения (или есть лучший метод), чтобы выполнить implace-сортировку запроса LINQ, приведенного выше.

5
задан George Duckett 13 June 2011 в 09:20
поделиться