Я не думаю, что существует способ сделать так непосредственно, но это в значительной степени as good
для использования дополнительного метода, который возвращает новый набор через yield return
ключевое слово. Они могли прибыть из существующей ранее библиотеки; другие указали, что LINQ имеет Reverse
метод, и вещи как OrderBy
также работали бы.
Пример: если Вы будете использовать дополнительный метод LINQ Reverse()
на IEnumerable<T>
, который использует yield return
для предоставления набора в обратном порядке, то выполнение foreach(var myThing in myCollection.Reverse())
перечислит через набор в обратном порядке.
Важный : yield return
является ключевым. Это означает, "когда я перечисляю этот набор, затем пойдите вещи выборки". В противоположность альтернативе для просто построения новый , инвертированный набор, который очень неэффективен и возможно имеет побочные эффекты.
Вы также можете установить делегат слоя для вашего собственного объекта и обработать -actionForLayer: forKey :. Похоже, вы получаете неявную анимацию, даже если делегат не реализует -actionForLayer: forKey:.