modifica per soddisfare gli ingressi non-list, ora gestisce IEnumerable<T>
e controlli se questo è un IList<T>
; in caso contrario, lo memorizza tramite ToList()
, il che consente di leggere solo i dati una volta (anziché .Count()
e .Skip()
che possono leggere i dati più volte).
Dal momento che questa è una lista, sarei propenso a scrivere un metodo di estensione che utilizza che al completo:
public static IEnumerable<T> TakeLast<T>(
this IEnumerable<T> source, int count)
{
IList<T> list = (source as IList<T>) ?? source.ToList();
count = Math.Min(count, list.Count);
for (int i = list.Count - count; i < list.Count; i++)
{
yield return list[i];
}
}
fonte
2010-07-08 09:12:58
Perché il 'Select (a => a)'? Non fa nulla ... – tzaman
quello era il mio "manichino" per inserire l'ultimo filtro x records – Ivo