Powiedz, że mam IQueryable
, który zwróci typ danych o właściwości (kolumnie) ID
.Zapytanie Linq dla tylko pierwszych N wierszy dla każdego unikalnego identyfikatora
Chcę dodatkowo filtrować moje zapytanie (nie chcę oceniać zapytania) w następujący sposób:
dla każdego unikalnego ID
od głównego zapytania, chcę Take(n)
, gdzie n
pewne arbitralne numer.
Oznacza to, że chcę zachować tylko pierwsze wiersze n
dla każdego unikalnego identyfikatora.
można uzyskać różne ID
„s ...
var ids = query.Select(q => q.ID).Distinct();
i mogę Take(n)
z resztą, ale jestem zakłopotany na podłączenie dwóch:
query = query.<FOR EACH DISTINCT ID>.Take(n);
Przyjęta odpowiedź działa, ale jest wolna dla dużego stołu. Napisałem this question jako kontynuację.