Reputation: 127
I'm having some trouble getting expected results from a linq query.
Here is some example data:
Queue Priority TTRDate
Main Critical 6/9/2014 7:41:00 PM
Main Major 6/9/2014 7:42:00 PM
Main Critical 6/9/2014 7:43:00 PM
Main Minor 6/9/2014 7:30:00 PM
Main Minor 6/9/2014 7:35:00 PM
Query:
listTickets = queryAllTickets.Where(y => y.Queue == "Main")
.OrderBy(t => t.Priority == "Critical")
.ThenBy(x => x.TTRDate)
.Take(numberOfrecords)
.ToList();
Expected Results:
Main Critical 6/9/2014 7:41:00 PM
Main Critical 6/9/2014 7:43:00 PM
Main Minor 6/9/2014 7:30:00 PM
Main Minor 6/9/2014 7:35:00 PM
Main Major 6/9/2014 7:42:00 PM
To put it simply, I want Critical items ordered by TTRdate, and then I want everything else ordered by TTRDate.
Upvotes: 0
Views: 479
Reputation: 125620
false
compares less than true
, so you need OrderByDescending
:
.OrderByDescending(t => t.Priority == "Critical")
or use !=
instead of ==
:
.OrderBy(t => t.Priority != "Critical")
Upvotes: 4