Инициализатор коллекции 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();