I'm not sure what you are asking, but Select iterates through the list, starting at index 0. If the value of the element in the current index is equal to the index, it will set the InPlace property in the anonymous object - true. I assume the above code will return true for 3, 6 and 7, right?
It will also simplify the explanation if you write something that you do not understand.
John Skeet wrote a series of blog posts where he implements linq, reads about Select here: Reimplementation of Select
UPDATE: I noticed one of the other comments in one of your comments, and it looks like it's lambda, not linq itself, which is confusing to you. If you read the Skeet blog post, you see that Select has two overloads:
public static IEnumerable<TResult> Select<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector) public static IEnumerable<TResult> Select<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, int, TResult> selector)
Select with index corresponds to the second overload. As you can see, this is an IEnumerable<TSource> extension, which in your case is an ints list, and so you call Select on IEnumerable<int> , and the signature of Select becomes: Select<int, TResult>(this IEnumerable<int> source, Func<int, int, TResult> selector) . As you can see, I changed TSource to int since it is a generic type of your IEnumerable<int> . I still have TResult since you are using an anonymous type. Could this explain some parts?