LINQ expressions have a superficial similarity to SQL queries, but the order of the clauses is rearranged.

C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development: Build applications with C#, .NET Core, Entity Framework Core, ASP.NET Core, and ML.NET using Visual Studio Code, 4th Edition
ASP.NET Core 3 and Angular 9: Full stack web development with .NET Core 3.1 and Angular 9, 3rd Edition
C# in Depth, 4th Edition

All LINQ expressions must have a from clause that indicates the data source and a select clause that

indicates the data Web developer wants to retrieve (or a group clause that defines a series of groups into which the data should be placed). The from clause is placed first:

 

Dim matches = From client In clients

 

The from clause identifies two pieces of information:

-The word immediately after in identifies the data source—in this case, it’s the collection object named clients that holds the Client details instances.

– The word immediately after from assigns an alias that represents individual items in the data source.

 

The next simplest possible LINQ query, retrieves the full set of data from the clients collection:

 

Dim matches = From client In clients

Select client