如何对ArrayList
个对象进行排序?我在排序IComparable
时实现了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));
}
}
我希望根据ArrayList
对Count
进行排序。
答案 0 :(得分: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));
}
}
因为Count是字符串,它可能不会按照你期望的方式排序....
答案 1 :(得分:1)
或者您可以使用LINQ构造来获取列表的排序版本,如下所示:
var results = myArrayList.OrderBy(x => x.Count).ToList();
你有没有理由不使用LINQ?
答案 2 :(得分:0)
要执行稳定排序,您必须实现自定义
IComparer
用于此方法的其他重载的接口。