2012-08-03 39 views
1

嗨有一個列表中有兩個整數的對象。我想按照以下內容顯示這個列表。
具有包含兩個整數成員對象的排序列表

public class ListClass 
{ 
    public int rowIndex { get; set; } 
    public int columnIndex { get; set; } 
    public ListClass() 
    { 
    } 

    public ListClass(int row, int column) 
    { 
     this.rowIndex = row; 
     this.columnIndex = column; 
    } 
} 

public static void main() 
{ 
    List<ListClass> listClassList = new List<ListClass>(); 
    listClassList.Add(new ListClass(0,1)); 
    listClassList.Add(new ListClass(0,3)); 
    listClassList.Add(new ListClass(0,2)); 
    listClassList.Add(new ListClass(0,8)); 
    listClassList.Add(new ListClass(1,1)); 
    listClassList.Add(new ListClass(1,0)); 
    listClassList.Add(new ListClass(2,1)); 
    listClassList.Add(new ListClass(3,0)); 
    listClassList.Add(new ListClass(3,8)); 
    listClassList.Add(new ListClass(3,3)); 
    listClassList.Add(new ListClass(3,1)); 
    listClassList.Sort(); 
} 
public void Sort() 
{ 
    \\Help Here 
} 


對該列表進行排序後,它應該是這樣的。 (0,1)
(0,2)
(0,3)
(0,8)
(1,0)
(1,1)
(2,1)
(3,0)
(3,1)
(3,3)
(3,8)

回答

1

變化ListClass使用了IComparable如下...

public class ListClass : IComparable<ListClass> 
{ 
    public int rowIndex { get; set; } 
    public int columnIndex { get; set; } 

    public ListClass(int row, int column) 
    { 
     this.rowIndex = row; 
     this.columnIndex = column; 
    } 

    public int CompareTo(ListClass other) 
    { 
     var index = this.rowIndex.CompareTo(other.rowIndex); 
     return index == 0 ? this.columnIndex.CompareTo(other.columnIndex) : index; 
    } 
} 

調用listClassList.Sort();現在將根據請求對列表進行排序。

有關更多信息,請參閱IComparable

0

一個簡單的LINQ可以做!

List<ListClass> lstSorted = (from element in listClassList 
          orderby element.rowIndex, element.columnIndex 
          select element).ToList(); 
+0

非常感謝,它真的幫助.. :) – 2012-08-06 06:03:32

相關問題