c# - Get subset of employees based on parameters -


i have done paging sorting in stored procedures. now, need same in linq following object. most readable linq query achieving sorting , paging in following scenario?

code

static  list<employee> getmydata(int pageindex, int pagesize, out int itemcount, string sortfield, string sortdirection ) {      employee e1= new employee(){empid = 1, empname = "e1"};     employee e2= new employee(){empid = 2, empname = "e2"};     employee e3= new employee(){empid = 3, empname = "e3"};     employee e4= new employee(){empid = 4, empname = "e4"};     employee e5= new employee(){empid = 5, empname = "e5"};     employee e6= new employee(){empid = 6, empname = "e6"};      list<employee> employees = new list<employee>();     employees.add(e1);     employees.add(e2);     employees.add(e3);     employees.add(e4);     employees.add(e5);     employees.add(e6);      itemcount = employees.count;      //get subset of employees based on paging , sorting parameters     //sorting can based on empid or empname     list<employee> currentpageemployees = null;     return currentpageemployees; } 

calling method

        int count = 0;         list<employee> e = getmydata(0, 2, out count, "empid", "descending"); 

you use custom selector in order resolve sortfield appropriate property of employee type. sort direction make assumption sortdirection either ascending or descending - if maybe bool better?

given here's example:

var selector = new func<employee, object>(e => e.gettype().getproperty(sortfield).getvalue(e, null)); var query = sortdirection.equals("descending", stringcomparison.ordinalignorecase)                 ? employees.orderbydescending(selector)                 : employees.orderby(selector);  list<employee> currentpageemployees = query     .skip(pageindex * pagesize)     .take(pagesize)     .tolist(); 

there dynamic linq extensions might make things more readble.

edit: removed casting


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -