Avatar ·

فرز المجموعة حسب عدة حقول في Kotlin

مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin وواجهت مهمة تبدو بسيطة، لكنني لا أستطيع إيجاد حل أنيق. لدي قائمة من الكائنات من الفئة `Person`: ```kotlin data class Person( val name: String, val age: Int, val salary: Double ) ``` أحتاج إلى فرز هذه القائمة أولاً حسب العمر (تصاعدياً)، ثم إذا كان العمر متساوياً، حسب الاسم (ترتيب أبجدي)، وأخيراً، إذا تطابق العمر والاسم، حسب الراتب (تنازلياً). في Java كنت سأستخدم سلسلة من المقارنات (comparators)، لكن في Kotlin أرى أن هناك دالة `sortedBy`، لكنها تقبل حقلاً واحداً فقط. هناك `sortedWith` و `compareBy`، لكنني لا أفهم تماماً كيفية دمجها بشكل صحيح. لقد جربت هذا الكود: ```kotlin val sortedList = list.sortedBy { it.age }.sortedBy { it.name }.sortedByDescending { it.salary } ``` لكن هذا لا يعمل بوضوح، لأن كل عملية فرز لاحقة تلغي السابقة. كيف يمكنني تنفيذ الفرز متعدد المستويات بشكل صحيح؟