Похоже, вы хотите заказать по количеству.
Когда вы говорите «получите первую группу из 5», что вы имеете в виду - какие данные вы хотите получить?
ОБНОВЛЕНИЕ после уточнения
Предполагая
public class Row
{
public int ID{get;set;}
public string Date{get;set;}
public int Count{get;set;}
}
Row r1 = new Row{ID=1, Date="01/01/01", Count=5};
Row r2 = new Row{ID=2, Date="01/02/01", Count=5};
Row r3 = new Row{ID=3, Date="01/03/01", Count=5};
Row r4 = new Row{ID=4, Date="01/04/01", Count=7};
Row r5 = new Row{ID=5, Date="01/05/01", Count=7};
Row r6 = new Row{ID=6, Date="01/06/01", Count=7};
Row r7 = new Row{ID=7, Date="01/07/01", Count=4};
Row r8 = new Row{ID=8, Date="01/08/01", Count=4};
Row r9 = new Row{ID=9, Date="01/09/01", Count=4};
Row r10 = new Row{ID=10, Date="01/01/01", Count=4};
List<Row> rows = new List<Row>{r1,r2,r3,r4,r5,r6,r7,r8,r9,r10};
Тогда
// We will assign results of our query to this variable
var result =
// rows is a generic list of Row objects
rows
// This splits the list into seperate categories organised by Count
// After the GroupBy, we have an IEnumerable<IGrouping<Int32, Row>> - that is, a collection of collections of items sharing a common key (in this case Count)
.GroupBy(r=>r.Count) // r is of type Row
// Now we are simply selecting the first item of each subgroup.
.Select(g=>g.First()) // g is IGrouping<Int32,Row>, g.First() is of type Row
;
Придает
ID Date Count
1 01/01/01 5
4 01/04/01 7
7 01/07/01 4