在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)); } }
这里我想基于Count
对ArrayList
进行排序。
试试这个:
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
接口以与此方法的其他重载一起使用。