كيفية فرز القائمة <قائمة > وفقا لقائمة [0] رقم ASC / DESC في C #؟

StackOverflow https://stackoverflow.com/questions/725652

  •  05-09-2019
  •  | 
  •  

سؤال

كيف يجب أن فرز هذا في ترتيب 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());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top