Используйте linq для создания проекции анонимного класса со списком


Предположим, что у меня есть следующие классы:

public MyClass
{
   public Property1 {get; set;}
   public Property2 {get; set;}
   public Property3 {get; set;}
   public Property4 {get; set;}
   public Property5 {get; set;}
   public Property6 {get; set;}
   public Property7 {get; set;}
   public Property8 {get; set;}
   public List<MySecondClass> MyList {get; set;}
}

public MySecondClass
{
   public SecondProperty1 {get; set;}
   public SecondProperty2 {get; set;}
   public SecondProperty3 {get; set;}
   public SecondProperty4 {get; set;}
   public SecondProperty5 {get; set;}
}

Предположим, что все инстанцировано, как бы я использовал linq, чтобы сделать проекцию, которая только что имела Property1 и Property2 и список, который только что имел SecondProperty4 и SecondProperty5?

Что-то вроде:

myClass.Select(x=> new { Property1 = x.Property1, 
                         Property2 = x.Property2, 
                         //Some Way To add The list here
                       }
Примечание: просто для уточнения myClass-это объект List<MyClass>.
1 2

1 ответ:

myClass.Select(x=> new { Property1 = x.Property1, 
                         Property2 = x.Property2, 
                         SecondList = x.MyList.Select(i => new { i.SecondProperty4, i.SecondProperty5 }).ToList()
                       }