若要依照放在裡面物件的某一屬性來排序,
可實做 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
沒有留言:
張貼留言