若要依照放在裡面物件的某一屬性來排序,
可實做 IComparer 來實現。
以下範例,是2層的 List (List裡面存放List),用放在內層 List 的第2元素來排序
class Program { static void Main(string[] args) { List<string> list1d; List<List<string>> list2d = new List<List<string>>(); list1d = new List<string>(); list1d.Add("t1"); list1d.Add("bb"); list2d.Add(list1d); list1d = new List<string>(); list1d.Add("t2"); list1d.Add("aa"); list2d.Add(list1d); list1d = new List<string>(); list1d.Add("t3"); list1d.Add("b1"); list2d.Add(list1d); /* 排序前 t1, bb t2, aa t3, b1 */ list2d.Sort(new MyList2dComparer()); /* 排序後 (依據aa、b1、bb排序) t2, aa t3, b1 t1, bb */ } } // 自訂排序 private class MyList2dComparer : IComparer<List<string>> { // 遞增排序 public int Compare(List<string> x, List<string> y) { return (x[1].CompareTo(y[1])); } }
參考
http://bbs.csdn.net/topics/230075175#post-220659128
http://msdn.microsoft.com/zh-tw/library/234b841s.aspx
沒有留言:
張貼留言