2012-08-03 54 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

相关问题