How can I sort an ArrayList
of objects? I have implemented the IComparable
interface while sorting the ArrayList
, but I am not getting the required result.
My code sample:
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));
}
}
Here I want to sort the ArrayList
based on Count
.
try this:
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));
}
}
as Count is string, it may not sort the way you expect....
Or you can just use a LINQ construct to get a sorted version of your list, like so:
var results = myArrayList.OrderBy(x => x.Count).ToList();
Is there a reason you are not using LINQ (yet)?
According to the MSDN documentation:
To perform a stable sort, you must implement a custom IComparer
interface to use with the other overloads of this method.