hope you can help me out here. I have a list of Bookings where I would like to get the top 2 rows in each group of TourOperators.
here\'s a sample of the data:
Replace First()
with Take(2)
and use SelectMany()
:
List<Booking> yetAnotherList =
list.GroupBy(row => row.TourOperator)
.SelectMany(g => g.OrderBy(row => row.DepDate).Take(2))
.ToList();
Update: Forgot the SelectMany
the first time. You want to flatten the result (which SelectMany
does), otherwise you get a list of IEnumerables
.
Try to use var
and replace First()
with Take(2)
:
var yetAnotherList = list.GroupBy(row => row.TourOperator)
.Select(g => g.OrderBy(row => row.DepDate).Take(2)).ToList();