Linq: What is the difference between Select and Where

.net, linq, select, where-clause

Solution

Where

finds items that match and only returns those that do (filtering).

-> `IEnumerable<A>` in, `IEnumerable<A>` out

Select

returns something for all items in the source (projection / transformation). That something might be the items themselves, but are more usually a projection of some sort.

-> `IEnumerable<A>` in, `IEnumerable<B>` out

Problem

The `Select` and `Where` methods are available in Linq. What should every developer know about these two methods? For example: when to use one over the other, any advantages of using one over the other, etc.

Original source

Related problems