كيفية فرز القائمة <قائمة > وفقا لقائمة [0] رقم ASC / DESC في C #؟
سؤال
كيف يجب أن فرز هذا في ترتيب ASC؟
أنا أخذت List<List<UInt32>>
كامل من سجلات List<UInt32>
وأريد أن يتم فرز هذه السجلات وفقا للعمود الأول في كل سجل - العمود رقم UINT32.
وبالتالي:
لدي قائمة من:
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 1,1,1,1,1
والتي يجب فرزها إلى:
List<UInt32>: 1,1,1,1,1
List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 32,1,1,1,1,1
-> فقط العدد الأول! البعض الآخر غير مهم للفرز. أنا أبحث عن Asc thing، ولكن كلاهما سيكون رائعا لذلك عندما أعتقد أن الخوارزمية يجب تغيير الخوارزمية، سأبحث عنه :)
شكرا لك على جهدك للمساعدة!
samuel، شكرا لك، سأحاول تنفيذها عندما أحاول تغيير النوع :)
المحلول
تقريبا مكررة من:
كيفية فرز القائمة u003CListu003Cstring> > حسب القائمةu003Cstring> عدد الحقول؟
شيء مثل:
var sorted = parent.OrderBy( l => l[0] );
أو:
parent.Sort( (a,b) => a[0].CompareTo( b[0] ) )
نصائح أخرى
بينما يعمل إجابة جون، أود أن أقترح باستخدام First()
بدلا من الوصول إلى عنصر 0 في القائمة. بهذه الطريقة تعمل لأي IEnumerable<T>
ليس فقط IList<T>
.
var sorted = list.OrderBy(subList => subList.First());
لا تنتمي إلى StackOverflow