Dire che ho un IQueryable
che restituirà un tipo di dati con una proprietà ID
(colonna).Query Linq solo per le prime N righe per ogni ID univoco
voglio filtrare ulteriormente la mia domanda (Non voglio valutare la query) come segue:
Per ognuna unica ID
dalla query principale, voglio Take(n)
, dove n
è un po 'arbitraria numero.
Cioè, voglio conservare solo le prime n
righe per ogni ID univoco.
posso ottenere le distinte ID
's ...
var ids = query.Select(q => q.ID).Distinct();
e posso Take(n)
con il resto di loro, ma sto perplesso su come collegare i due:
query = query.<FOR EACH DISTINCT ID>.Take(n);
La risposta accettata funziona, ma è lenta per un grande tavolo. Ho scritto this question come follow-up.