edycji zaspokoić wejść spoza listy, teraz obsługuje IEnumerable<T>
i kontrole jeśli jest to IList<T>
; jeśli nie, buforuje go przez ToList()
, co pomaga zapewnić, że odczytujemy dane tylko raz (zamiast i .Skip()
, które mogą odczytywać dane wiele razy).
Ponieważ jest to lista, byłbym skłonny napisać metodę rozszerzenia, które wykorzystuje, że w pełni:
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];
}
}
Dlaczego 'Select (a => a)'? To nic nie robi ... – tzaman
to był mój "manekin", aby umieścić ostatni filtr rekordów x. – Ivo