use your variablename whenever you see dtProds within the LINQ statement
use your variablename whenever you see dtList within the LINQ statement
d1,d2 are like local variable names referencing the looped datarows
Also have a look here:
[FirstAid] Handling of The source contains no DataRows exception - News / Tutorials - UiPath Community Forum
And here for LINQ
[HowTo] LINQ (VB.Net) Learning Catalogue - Help / Something Else - UiPath Community Forum