对C#中的对象数组列表进行排序
本文关键字:列表 排序 数组 对象 | 更新日期: 2023-09-27 18:21:58
如何对对象的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<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是字符串,它可能不会按照您期望的方式排序。。。。
根据MSDN文档:
要执行稳定排序,必须实现自定义
IComparer
与此方法的其他重载一起使用的接口。
或者您可以使用LINQ构造来获得列表的排序版本,如下所示:
var results = myArrayList.OrderBy(x => x.Count).ToList();
你还没有使用LINQ是有原因的吗?