Dinâmico na estrutura de entidade c # 3.5

ISO Code description    Year    value
CAD Canadian Dollar     2009    1.3001
CAD Canadian Dollar     2010    1.3001
CAD Canadian Dollar     2011    0.0001
EUR Euro                2009    1.0000
EUR Euro                2010    1.0000
EUR Euro                2011    0.0001
USD US Dollar           2009    1.2300
USD US Dollar           2010    1.2300
USD US Dollar           2011    0.0001

Tabela

ISO Code    description 2009    2010    2011
CAD Canadian Dollar     1.3001  1.3001  0.0001
EUR Euro                1.0000  1.0000  0.0001
USD US Dollar           1.2300  1.2300  0.0001

Mesa

Como a tabela 1 pode ser convertida na tabela 2 usando linq em c #, desde que o número de anos seja dinâmico (não é fixado em 2009,2010, 2011, os valores 2012,2013 e assim por diante podem ser adicionados posteriormente)

as classes são as seguintes

class Currency
 {
    public string ISO Code { get; set; }
    public string Description { get; set; }
 }
class Rate
{        
    public string ISO Code { get; set; }
    public int Year { get; set; }
    public inr Value { get; set; }

}

No final, tenho que vincular os resultados a um gridview. Alguém pode ajudar por favo

questionAnswers(1)

yourAnswerToTheQuestion