https://blog.stackademic.com/utilizing-linqs-inner-join-in-c-combining-data-from-multiple-sources-55869733841a