With the let statement we can memorize for later usage
Here we check if there is right side join pair then use the col2 value otherwise it is set to null
later when constructing the row itemArray we use the prepared value - b
Yes we order the LINQ result on the left side datatable rows as mentioned by you about the requirements