It would be a good idea to take the products.ToArray() out of the loop. There is no need to do it every time you go around the loop. Alternatively,
int[] indexesToInclude = new int[] {0,1,4,5,6};
IEnumerable<Product> filtered = products
.Where((p,n)=> indexesToInclude.Contains(n));