As the name suggests, parallel LINQ is an extension of the previous LINQ capabilities provided in previous versions of .NET.
In the first solution (Parallel LINQ), Microsoft expert Stephen Toub explains the reasons for this approach in Patterns Of Parallel Programming (available at https://www.microsoft.com/en-us/download/details.aspx?id=19222):
"A significant majority of the work in many applications and algorithms is done through loop control constructs. Loops, after all, often enable the application to execute a set of instructions over and over, applying logic to discrete entities, whether those entities are integral values, such as in the case of a for loop, or sets of data, such as in the case of a for each loop.
Many languages ...