2012-01-30 54 views
1

如何排序对象的ArrayList?我已经实施了IComparable接口,同时排序ArrayList,但我没有得到所需的结果。在C中排序对象的ArrayList#

我的代码示例:

public class Sort : IComparable 
{ 
    public string Count { get; set; } 
    public string Url { get; set; } 
    public string Title { get; set; } 

    public int CompareTo(object obj) 
    { 
     Sort objCompare = (Sort)obj; 
     return (this.Count.CompareTo(objCompare.Count)); 
    } 
} 

在这里,我想基于CountArrayList进行排序。

+1

@Srikanth告诉我们您正在使用哪个.NET版本进行开发:)(重新标记您的问题)。 – 2012-01-30 13:32:32

+6

“我没有得到所需的结果”是不够的信息。请阅读http://tinyurl.com/so-hints并更新您的问题。另外,你有*使用'ArrayList'而不是'List '?非泛型集合就像2004年那样。 – 2012-01-30 13:34:37

+0

你得到了什么结果,你期望什么? – jeroenh 2012-01-30 13:35:26

回答

3

试试这个:

public class Sort : IComparable<Sort> 
{ 
    public string Count { get; set; } 
    public string Url { get; set; } 
    public string Title { get; set; } 

    public virtual int CompareTo(Sort obj) 
    { 
     return (Count.CompareTo(obj.Count)); 
    } 
} 

为计数是字符串,它可能不排序你期望的方式....

0

按照MSDN documentation

要执行一个稳定的排序,你必须实现自定义IComparer 接口使用这种方法的其他重载使用。

1

或者你也可以使用LINQ构建得到一个有序的版本你的名单,如下所示:

var results = myArrayList.OrderBy(x => x.Count).ToList(); 

是否有你没有使用LINQ(还)的原因?

+0

性能差异是什么? – gotqn 2015-01-04 21:06:40