Monday 15 August 2011

How to Sort a list for a specific case c# -



How to Sort a list for a specific case c# -

here sample code want sorted info on totalcharge property in desending order way.

//list<ratestatus> sortedlist = objlistorder.orderbydescending(o=>o.totalcharge).tolist();

see below code , guide me how sort totalcharge property in desending. thanks

static class programme { /// <summary> /// main entry point application. /// </summary> [stathread] static void main() { list<ratestatus> oratecollection = new list<ratestatus>(); ratestatus oratestatus = new ratestatus(); oratestatus.statusmsg = "ok"; oratestatus.errormsg = "none"; oratestatus.ratedetails.add(new ratedetails() { currentcycode = "gbp", totalcharge = 20 }); oratecollection.add(oratestatus); // want below //list<ratestatus> sortedlist = objlistorder.orderbydescending(o=>o.totalcharge).tolist(); } } public class ratestatus { public ratestatus() { ratedetails = new list<ratedetails>(); } public string statusmsg { get; set; } public string errormsg { get; set; } public list<ratedetails> ratedetails { get; set; } } public class ratedetails { public string servicecode { get; set; } public string servicename { get; set; } public string currentcycode { get; set; } public double totalcharge { get; set; } } this way has been sorted. oratestatus.ratedetails.sort(new ratestatuscomparer()); oratecollection.add(oratestatus); public class ratestatuscomparer : icomparer<ratedetails> { public int compare(ratedetails x, ratedetails y) { if (x.totalcharge > y.totalcharge) homecoming -1; else if (x.totalcharge < y.totalcharge) homecoming 1; else homecoming 0; } }

thanks

create class implements icomparer<ratestatus>.

for example, this:

public class ratestatuscomparer: icomparer<ratestatus> { public int compare(ratestatus x, ratestatus y) { ... comparing code here } }

and can utilize overload of list.sort , provide comparer like

var с = new ratestatuscomparer(); objlistorder.sort(c);

see msdn details.

c# list sorting

No comments:

Post a Comment