I got this working by getting the distinct elements of each table that I needed as a List.
Next I created a Dictionary List of type
I went through each list individually every time I found a new object I added it to the dictionary. If the object already existed I increased the count value for that object.
After that I found the highest value int Max in the dictionary.
Then I selected the objects from the dictionary where the count matched Max.
I would have liked to do something cleaner but hey it works. Which is fine for me I'm only developing a prototype.