سؤال

Dim classCodeDetails As List(Of ClassCodeDetail) =     
    db.ClassCodeHeaders.Single(Function(cch)
        cch.CLCH_ID = classCodeHeaderId
    ).ClassCodeDetails.ToList()

classCodeDetails.Sort(Function(c1, c2)  
    c1.Make.MAKE_English.CompareTo(c2.Make.MAKE_English)
)

سؤالي هو كيف يمكنني الفرز على سمات متعددة؟ أريد الفرز أولاً Make.MAKE_English, ، ثم بواسطة Model.MODL_English.

كيف يمكنني تنفيذ ذلك؟

شكرًا،
~ CK

هل كانت مفيدة؟

المحلول

إذا لم تكن بحاجة إلى فرز في مكانها ، فيمكنك استخدام OrderBy وظيفة:

Dim sortedList = list.OrderBy(Function(x) x.Prop1).ThenBy(Function(x) x.Prop2)

مثالك سيكون:

Dim classCodeDetails As List(Of ClassCodeDetail) = _
   db.ClassCodeHeaders.Single(Function(cch) cch.CLCH_ID = classCodeHeaderId).ClassCodeDetails _
  .OrderBy(Function(c1) c1.Make.MAKE_English) _
  .ThenBy(Function(c1) c1.Make.MODL_English) _
  .ToList()

في الواقع ، هذه هي الطريقة الصحيحة للقيام بذلك (يبدو أنك تستخدم LINQ إلى SQL) لأنه سيستخدم ORDER BY في عبارة SQL التي تم إنشاؤها لفرز البيانات بدلاً من فرزها يدويًا على العميل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top