Avatar ·

فرز المجموعة حسب عدة حقول في 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 })) ``` لكن هذا يفرز فقط حسب حقلين. وكيف يمكن إضافة فرز تنازلي للطول؟ وهل هناك طريقة أكثر إيجازاً؟ سأكون ممتناً.