I know I could do this with loops (as a matter of fact, I currently am, but I am trying to learn / imporve my Linq skills and i also hope it will provide a more efficent sol
It's not great that you have separate lists with the discrete pieces of information instead of a single list with Student instances. If you want to use group by here you'll probably need to zip the collections together first into a single enumerable with triplets and start using the query operations on that enumerable.