Question: I have a huge IEnumerable(suppose the name is myItems), which way is more effective?

Solution 1: Filter it first then ForEach.

```
Array.ForEach(myItems.Where(FILTER-IT-HERE).ToArray(),MY-ACTION);

```

Solution 2: Do RETURN in MY-ACTION if the item is not up to the mustard.

```
Array.ForEach(myItems.ToArray(),MY-ACTION-WITH-FILTER);

```

Is one of them always better than another? Or any other good suggestions? Thanks in advance.

Answer: 
Did you do any measurements? Since WE can't measure the run time of My-Action then only you can. Measure and decide.
The idea of LINQ is to work on enumerable collections, so the best LINQ query is the one where you don't use `Array.ForEach()` and `.ToArray()` at all.