Linq is just a query language. You simply define your query above a
set of somethings. Let's not think about deferred execution or possibilities of parallelism, but the key here is that
set of something. Linq is not on it's on, we speak about Linq to entities, objects, sql, odb... and many other things for that somebody provides linq interface (
provider[
^]).
If this porvider written so it implements a faster search/filter than foreach, than you will have it, if not, than not.
If there is a database engine to which the linq query is directed, and the database schema is well designed, and the indexes are there, than the answer is probably yes. If you query an array, than the answer will be no.