it looks like your case can be solved with grouping the data on year with the help of a groupby LINQ statement or the non-linq approach. Both options are described here:
for updating the data following options out of many options are available:
dynamic creation of a lookup dictionary - updating within a for each