Инициализатор коллекции C# foreach

Возможно ли в C# сделать что-то похожее на следующее?

var tigerlist = new List<Tigers>(){ Tail = 10, Teeth = 20 };

var tigers_to_cats_approximation = new List<Cat>()
{    
     foreach (var tiger in tigerlist)
     {                 
           new Cat()
           {
               Tail = tiger.Tail / 2,
               Teeth = tiger.Teeth / 3,
               HousePet = true,
               Owner = new Owner(){ name="Tim" }
           }
     }
}

Я делаю некоторые API-интерфейсы XML, и входящие объекты запроса аналогичны объектам ответа, которые должны выходить. Выше было бы невероятно удобно, если бы это было возможно; гораздо больше, чем авто-картограф.

1 ответ

Решение

Вы можете использовать Select пункт вместе с ToList():

var tigers_to_cats_approximation = 
      tigerlist.Select(tiger => new Cat() { 
                     Tail = tiger.Tail / 2, 
                     Teeth = tiger.Teeth / 3, 
                     HousePet = true, 
                     Owner = new Owner(){name="Tim"} })
               .ToList();
Другие вопросы по тегам