在C#中对对象的ArrayList进行排序

如何对对象的ArrayList进行排序? 我在对ArrayList进行排序时实现了IComparable接口,但是我没有得到所需的结果。

我的代码示例:

 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进行排序。

试试这个:

 public class Sort : IComparable { 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是字符串,它可能不会按照你期望的方式排序….

或者您可以使用LINQ构造来获取列表的排序版本,如下所示:

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

你还没有使用LINQ的原因吗?

根据MSDN文档 :

要执行稳定排序,必须实现自定义IComparer接口以与此方法的其他重载一起使用。