If Linq uses a "for or while" loop internally for the where clause, Why should we not use it directly?