Convert anonymous type to class

Well, you could use:

var list = anBook.Select(x => new ClearBook {
               Code = x.Code, Book = x.Book}).ToList();

but no, there is no direct conversion support. Obviously you’ll need to add accessors, etc. (don’t make the fields public) – I’d guess:

public int Code { get; set; }
public string Book { get; set; }

Of course, the other option is to start with the data how you want it:

var list = new List<ClearBook> {
    new ClearBook { Code=10, Book="Harry Potter" },
    new ClearBook { Code=11, Book="James Bond" }
};

There are also things you could do to map the data with reflection (perhaps using an Expression to compile and cache the strategy), but it probably isn’t worth it.

Leave a Comment