الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ترتيب العناصر في List<>

بدأه الاخير زمانه في 6 فبراير 2010 · 4 رد · 787 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،،

لدي List<> من class معين سبق وان عرفته ،،

اريد ترتيب محتويات هذه ال list بالأعتماد على احد حقول هذا الكلاس (عمل sort).

مثلا لو كان class Student واحد حقوله هو ال age اريد ترتيب هذه ال List حسب اعمار الطلاب KK

وايضا هل ممكن ترتيب فوق ترتيب؟

يعني اولا ارتب الطلبة حسب مراحلهم مثلا

المرحلة الاولى

المرحلة الثانية

المرحلة الثالثة

و هكذا .. ثم ارتب الطلاب من جديد حسب العمر لكن على ان لا يتأثر الترتيب الاول.

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

انت محتاج تنشئ صف بيوعد بتحقق IComparer وبعدها تعرف Compare

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

جرب تستخدم الSortedList

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#4

هو فيه حلول كثيرة ولكن اعتقد ان فيه حل سهل لو بتعرف LINQ وهعرضلك الحل عن طريق المثال الاتي

لنفترض ان هناك Class للطالب فيها المرحلة و الاسم

class Student
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public StudentClass Class { get; set; }
    }
    enum StudentClass
    {
        One,
        Two,
        Three,
        Four
    }

وهنعمل List وهنضيف ليها بعض البيانات

List<Student> studentCollection = new List<Student>();
            studentCollection.Add(new Student { Class = StudentClass.One, Name = "Amr" });
            studentCollection.Add(new Student { Class = StudentClass.Two, Name = "Ali" });
            studentCollection.Add(new Student { Class = StudentClass.Three, Name = "Mamdoud" });
            studentCollection.Add(new Student { Class = StudentClass.Two, Name = "Medhat" });
            studentCollection.Add(new Student { Class = StudentClass.Three, Name = "Amgad" });
            studentCollection.Add(new Student { Class = StudentClass.One, Name = "Alaa" });

اذا اردنا ترتيب بحقل class ثم حقل Name تكون كالاتي :

var sortedStudents = from student in studentCollection
                                 orderby student.Class, student.Name
                                    select student;
List<Student> sortedCollection = sortedStudents.ToList();

ارجوا ان يكون دا حل مناسب لمشكلتك

تم تعديل هذه المشاركة بواسطة ya3mro في 10 فبراير 2010 في 19:59

2 −1
#5

أغلب ال Primitive Data Types تحقق الواجهة IComparable لذلك لست بحاجة سوى لاستخدام OrderBy ExtensionMethod وتمرير ال Property على شكل Key وفقط :).

مواضيع مشابهة