04 January 2011

Sorting in List<> Generics in Csharp

Sorting in List<> Generics in Csharp


// Create Resource class with variables(Members)
public class Resources
{
public string Name { get; set; }
public string url { get; set; }
public int id { get; set; }
public string Image { get; set; }
public string post { get; set; }
public DateTime Createddate { get; set; }
public string ListName { get; set; }


public static int Comparedate(Resources r1, Resources r2)
{
// To display in descending order multiply with -1
return r1.Createddate.CompareTo(r2.Createddate) * -1;
}
}

List Rs = new List();


Add values to the list as below.

Resources r2 = new Resources();
r2.post = PostItem["Title"].ToString();
r2.Name = "";
r2.url = "";
r2.Image = ImageUrl.ToString();
r2.id = PostItem.ID;
r2.Createddate = Convert.ToDateTime(PostItem["Created"]);
r2.ListName = "Posts";
Rs.Add(r2);



Resources r3 = new Resources();
if (postedLink["Notes"] != null)
r3.post = postedLink["Notes"].ToString();
r3.Name = postedLink["URL"].ToString().Substring(0, postedLink["URL"].ToString().IndexOf(','));
r3.url = postedLink["URL"].ToString().Substring(0, postedLink["URL"].ToString().IndexOf(','));
r3.Image = ImageUrl.ToString();
r3.id = postedLink.ID;
r3.Createddate = Convert.ToDateTime(postedLink["Created"]);
r3.ListName = "Links";
Rs.Add(r3);

Comparison ComparedList = new Comparison(Resources.Comparedate);

Rs.Sort(ComparedList);

Assign ‘Rs’list to the repeater or gridview.

Source: http://shafaqat309.wordpress.com/2009/05/04/sorting-generic-collections-list-in-cnet-net-2-0-net-3-5-c-classes-collections-generics-sorting/