optimize IList#take