فرز المجموعة حسب عدة حقول في Kotlin
مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin وواجهت مهمة فرز قائمة من الكائنات حسب عدة حقول. على سبيل المثال، لدي كلاس Person:
```kotlin
data class Person(val name: String, val age: Int, val height: Double)
```
وقائمة من الأشخاص:
```kotlin
val people = listOf(
Person("Alice", 25, 165.0),
Person("Bob", 30, 180.0),
Person("Charlie", 25, 170.0),
Person("Alice", 30, 160.0)
)
```
أحتاج إلى فرز هذه القائمة أولاً حسب الاسم (تصاعدياً)، ثم حسب العمر (تصاعدياً)، ثم حسب الطول (تنازلياً). في Java كنت سأستخدم Comparator مع سلسلة thenComparing. في Kotlin توجد دالة sortedWith، لكنني لا أفهم كيفية تطبيقها بشكل صحيح لعدة حقول. جربت كتابة شيء مثل:
```kotlin
val sorted = people.sortedWith(compareBy({ it.name }, { it.age }))
```
لكن هذا يفرز فقط حسب حقلين. وكيف يمكن إضافة فرز تنازلي للطول؟ وهل هناك طريقة أكثر إيجازاً؟ سأكون ممتناً.