对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));
    }
}

在这里,我想根据CountArrayList进行排序。

对C#中的对象数组列表进行排序

试试这个:

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是有原因的吗?