func - Creating and Initializing a Generic Class -
how can create , initialize following class? i'm struggling tsortkey. thought like:
var p = new queryparameters<employees, e => e.lastname>(); // wrong!! public class queryparameters<t, tsortkey> t : class { public int page { get; set; } public int pagesize { get; set; } public string filter { get; set; } public func<t, tsortkey> sortselector { get; set; } public bool ascending { get; set; } } what i'm trying replace getemployees method arguments in code below queryparameters object above.
public queryresults<employees> getemployees<tsortkey>(int page, int pagesize, string filter, func<employees, tsortkey> sortselector, bool asc) { ienumerable<employees> query = employees; if (filter != "*") { query = query.where (e => e.lastname.startswith(filter)); } if (sortselector != null) { query = asc ? query.orderby(sortselector) : query.orderbydescending(sortselector); } var results = new queryresults<employees> { totalitems = query.count(), items = query.skip((page - 1) * pagesize).take(pagesize) }; return results; } public class queryresults<t> t : class { public ienumerable<t> items { get; set; } public int totalitems { get; set; } } i think i'm close might out in left field.
you're bit out in left field. generic parameter's need type names (classes, structs, interfaces). appear trying pass lamdba method, not class, struct, or interface won't work.
what is:
var p = new queryparameters<employee, string>(); p.sortselector = e => e.lastname;
Comments
Post a Comment