Create a dynamic poco filled with data
===

I have a collection of the following objects:

    public class MyPoco
    {
      public int Id{get; set;}
      public int CategoryId{get; set;}
      public int Year{get; set;}
      public string Text{get; set;}
    }

I need to translate List<MyPoco> to List<SomeDynamicObject>, where SomeDynamicObject

    public class SomeDynamicObject
    {
       public int Id{get; set;}
      public int CategoryId{get; set;}
      public string Year1Text{get; set;}
      public string Year2Text{get; set;}
      ... etc, depending on the number of years for current category.
    }

So number of properties in this class depend on the number of years for the category. And I need to make a class that will have maximum amount of years are there in the collection.
And fill it with data from that collection.
I was going to do it using dynamics and ExpandoObject, but I don`t get how to fill the dynamic object I will get from List<MyPoco>. As corresponging properties should be mapped to the properties of the dynamic object.