سؤال
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 التي تم إنشاؤها لفرز البيانات بدلاً من فرزها يدويًا على العميل.
لا تنتمي إلى StackOverflow